问题标签 [protobuf-java]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - ProtobufAnnotationSerializer 的问题 - 斯坦福 CoreNLP
我尝试使用如下ProtobufAnnotationSerializer
序列化Annotation
对象:
这个bug出来了:
我认为 CoreNLP ProtobufAnnotationSerializer 和 protobuf 包之间存在不一致。我使用的是直接从CoreNLP 主页下载的 3.9.1 版本,我什至尝试了一些替代解决方案,但它们都不起作用。我试过:
- 版本 3.9 3.8
- 直接从 maven 下载包及其依赖项
- 在 github 上下载并构建(使用 ant)源代码。
其他语言(我用法语测试过)甚至在调用服务器时也会发生错误。
java - protobuf 反序列化时内存不足
我创建了一个原型如下:
我将数据(240mb)放入 pb 对象并将对象序列化为本地文件(590mb)。规模翻了一番。为什么会这样?
接下来,我将本地文件转换为 pb 对象,Xms 和 Xmx 都是 5g。最后,我得到了一个内存不足的异常。
用法有什么问题吗?
顺便说一句:protobuf.jar 的版本是 3.6.0
请帮忙~~
堆栈跟踪
[root@localhost test]# java -Xms5g -Xmx5g -jar ProtobufTester.jar /APP/midmif/out_bak/Rbeijing_dir322.rinf
java - 发布构建失败
我正在尝试构建签名版本(发布版本),但出现以下错误
我试图清理、无效和删除 gradle 文件并重建它。还更新到最新版本的 gRPC 版本和 protobuf。也尝试了这个解决方案,但没有奏效。
这是我的 build.gradle (应用程序模块)文件
职业后卫
详细运行过程错误:
java - 地图列表使用 Mapstruct 从 Java POJO 到 Protobuf (proto3)
我正在尝试将一些 POJO 从 Java 映射到 Protobuf (proto3)。其中一些包含列表。虽然使用 POJO(例如 List)映射列表没有问题,但我得到了 UnsupportedOperationException。
示例List<Product>
(这很有效):
示例List<String>
(这不起作用):
此外,我有一些用于构建器的 Mapper:
maven-plugin - protobuf-maven-plugin 不生成 java 工件
我有以下 Maven 配置,我无法弄清楚为什么没有为我的原型生成 java 工件。我的原型文件在文件夹中
/src/main/proto/hello.proto
当我这样做时,我在控制台中看不到任何错误
mvn包
java - Lombok (Builder) 对象到 Protobuf 对象
我使用 lombok/auto-value 和构建器模式创建了一个 POJO。我需要将对象转换为由 protobuf 生成的 java 模型。
Protobuf 文件
我正在尝试使用以下库来实现这一点,但失败了。
谁能帮我解决这个问题,或者是否有任何其他库可以进行这种转换或以更好的方式处理它?
java - Java中protobuf的自定义打印机
我使用的是 protobuf 2.6.1,我有一个复杂的类型,例如 UUID 表示为两个固定 64 字段,时间戳表示为 long 等,需要以更易于阅读的方式打印。
我正在寻找一般扩展所有 protobufs 的 toString 以将复杂类型转换为人类可读类型。
有没有这样的可能?如果 2.6.1 没有,那么 >= 3.0 中是否有任何选项?
json - 为包含随机字段名称的 JSON 输入编写 proto 文件
这里是 protobuff 的新手。我正在使用 protobuff 压缩 JSON 文件。问题是这个 JSON 文件来自网络服务器的响应,并且包含名称是随机的某些字段,即每个请求发布到服务器时,键名不同。例如考虑下面的 JSON:
在上面的 json 中,字段名称“abc”、“def”、“ghi”每次都可以变化。protobuf 中有没有办法让我完全获得 field1 的值(如单个字符串或其他任何内容)而不会丢失其中的随机字段?
java - 将 json 转换为 Java 中动态生成的 protobuf
给定以下 json 响应:
以及以下user.proto文件:
我希望能够动态创建 protobuf 消息类(在运行时编译 .proto),这样如果 json 响应通过一个字段得到增强,"phone" : "+1234567890"
我可以上传一个新版本的 protobuf 文件来包含string phone = 4
并获取它protobuf 响应中公开的字段,无需重新启动服务。
如果我要从帽子中提取这些类,我希望能够按照以下代码编写一些东西。
是否有现有的 com.acme.ProtobufUtils.compile(...) 方法?或者如何实施?运行 protoc + load 类似乎有点过头了,但如果没有其他选择,我愿意使用它......
protocol-buffers - Protobuf deserialize exception
Trying to deserialize a message using protobuf in Java and getting the below exception.
Caused by: com.google.protobuf.InvalidProtocolBufferException: While parsing a protocol message, the input ended unexpectedly in the middle of a field. This could mean either that the input has been truncated or that an embedded message misreported its own length. at com.google.protobuf.InvalidProtocolBufferException.truncatedMessage(InvalidProtocolBufferException.java:86) at com.google.protobuf.CodedInputStream$ArrayDecoder.readRawLittleEndian64(CodedInputStream.java:1179) at com.google.protobuf.CodedInputStream$ArrayDecoder.readFixed64(CodedInputStream.java:791) at com.google.protobuf.UnknownFieldSet$Builder.mergeFieldFrom(UnknownFieldSet.java:534) at com.google.protobuf.GeneratedMessageV3.parseUnknownFieldProto3(GeneratedMessageV3.java:305)