草庐IT

developers_guide_protocol

全部标签

java - Protocol Buffer : get byte array from ByteString without copying

假设我有一个方法voidfoo(byte[]bytes)需要一个字节数组作为它的参数。但是,Protobuf中字节数组的Java类型是ByteString。我可以使用byte[]toByteArray()获取字节数组。但问题是这种方法使用copy来构建一个新的数组,代价比较大。我宁愿它直接返回底层数组,或者返回一个View。是否有任何API,或者性能损失是可以接受的? 最佳答案 通常这是不可能的,因为在ByteString的某些子类中可能没有这样的数组。BoundedByteString可以包含更大的数组,因此需要复制才能获得正确大

java - Spring Boot 测试 MalformedURLException : unknown protocol: classpath

如果在SpringBoot应用程序中使用java.net.URL,使用classpath协议(protocol),它会按预期工作,因为SpringBoot注册了URLStreamHandlerFactory。例如新URL("classpath:someFile.whatever")。但当此代码作为JUnit测试执行时,java.net.MalformedURLException:unknownprotocol:classpath异常被抛出。当为JUnit测试初始化​​Spring上下文时,似乎没有注册适当的URLStreamHandlerFactory。重现步骤:1)创建SpringB

java - Protocol Buffer Java RPC 栈

根据this维基百科词条:“ProtocolBuffers与Facebook的Thrift协议(protocol)非常相似,只是它不包含用于定义服务的具体RPC堆栈。自从ProtocolBuffers开源以来,出现了许多RPC堆栈来填补这一空白”但是没有引用RPC栈的例子。谁能建议基于Java的RPC堆栈实现? 最佳答案 如果你想要基于Java的RPC堆栈,它是RMI.但是,它不能很好地跨平台工作。我一直在使用ProtoBuf做RPC。您几乎可以通过将protobuf消息包装在另一个定义服务或调用的protobuf中来模拟RPC堆栈

java - ClassCastException :com. google.appengine.tools.development.ApiProxyLocalImpl 无法转换为 com.google.appengine.tools.development.ApiProxyLocal

我是开发Maven应用程序并部署到谷歌应用引擎的新手。我正在使用appengine1.9.0和eclipsekepler4.3然而,当我尝试运行时,我得到了一个错误,根据这个blog克里斯,它建议删除这个jar。appengine-api-labsappengine-api-stubsappengine-testing我已经在库中删除了它并尝试了mavenclean但错误仍然出现。下面是我的图书馆。下面是完整的控制台错误:WARNING:failed_ah_ServeBlobFilter:java.lang.ClassCastException:com.google.appengine

java - Protocol Buffer 3 : Enums as keys in a map

枚举不允许用作映射中的键。这里的PaxType是一个枚举,不允许用作键。enumPaxType{ADULT=0;CHILD=1;INFANT=2;}messageFlightData{mapfareType=1;} 最佳答案 这是不允许的,因为它不能很好地与proto3开放枚举语义兼容。例如,在Java中,如果您有一个Map,则键只能是定义的值之一。如果您碰巧从远程客户端/服务器接收到不在定义值集中的枚举键值,则无法将其放入Map中。此限制迫使我们要么删除具有未知枚举键的映射条目(这违反了proto3开放枚举语义),要么禁止枚举作为

java - 提高 Protocol Buffer 的性能

我正在编写一个应用程序,需要从单个文件中快速反序列化数百万条消息。应用程序所做的基本上是从文件中获取一条消息,做一些工作然后丢弃该消息。每条消息由大约100个字段组成(并非所有字段都始终被解析,但我需要所有字段,因为应用程序的用户可以决定他想处理哪些字段)。此时,应用程序包含一个循环,在每次迭代中仅使用readDelimitedFrom()调用执行。有没有办法优化问题以更好地适应这种情况(拆分为多个文件等...)。此外,在这一刻,由于消息的数量和每条消息的尺寸,我需要对文件进行gzip压缩(由于字段的值非常重复,它在减小大小方面相当有效)——虽然这减少了性能。

java - Protocol Buffer 和枚举组合?

这是我的原型(prototype)文件:messageMSG{requiredMsgCodesMsgCode=1;optionalint64Serial=2;//UniqueIDnumberforthisperson.requiredint32From=3;requiredint32To=4;//blabla...enumMsgCodes{MSG=1;FILE=2;APPROVE=4;ACK=8;ERROR_SENDING=16;WORLD=32;}}在我的C#中,我正在尝试:msg=msg.ToBuilder().SetMsgCode(msg.MsgCode|MSG.Types.Ms

java - 我应该如何解决 java.lang.IllegalArgumentException : protocol = https host = null Exception?

我正在开发一个SSL客户端服务器程序,我必须重用以下方法。privatebooleanpostMessage(Stringmessage){try{StringserverURLS=getRecipientURL(message);serverURLS="https:\\\\abc.my.domain.com:55555\\update";if(serverURLS!=null){serverURL=newURL(serverURLS);}HttpsURLConnectionconn=(HttpsURLConnection)serverURL.openConnection();conn

java - 从 google play developer rest api 访问编辑方法

我成功通过了googleplaydeveloperrestapi的身份验证,我也获得了刷新token,但我可以弄清楚如何发出编辑请求。我在以下链接中有方法签名:https://developers.google.com/android-publisher/api-ref/edits/insert我添加了以下标题Authorization:{{token_type}}{{access_token}}但我不知道把包名放在哪里:POSThttps://www.googleapis.com/androidpublisher/v2/applications/packageName/edits我像

java - 什么是 http-remoting 协议(protocol)

我已经在Wildfly上设置了一个EJB并编写了一个客户端来访问它。使用“http-remoting”协议(protocol),它工作正常。不幸的是,我不确定http-remoting的功能细节。我想这是RMI协议(protocol)的http隧道。但是我找不到关于这个主题的任何合适的资源。所以我真的不确定。有人知道http-remoting作为协议(protocol)是如何工作的吗? 最佳答案 这是在JBossRemoting中实现的协议(protocol).有一个GitHubrepo也是为了它。另外,根据您使用的WildFly版