问题标签 [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.

0 投票
1 回答
175 浏览

java - ProtobufAnnotationSerializer 的问题 - 斯坦福 CoreNLP

我尝试使用如下ProtobufAnnotationSerializer序列化Annotation对象:

这个bug出来了:

我认为 CoreNLP ProtobufAnnotationSerializer 和 protobuf 包之间存在不一致。我使用的是直接从CoreNLP 主页下载的 3.9.1 版本,我什至尝试了一些替代解决方案,但它们都不起作用。我试过:

  • 版本 3.9 3.8
  • 直接从 maven 下载包及其依赖项
  • 在 github 上下载并构建(使用 ant)源代码。

其他语言(我用法语测试过)甚至在调用服务器时也会发生错误。

0 投票
0 回答
124 浏览

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

0 投票
1 回答
721 浏览

java - 发布构建失败

我正在尝试构建签名版本(发布版本),但出现以下错误

我试图清理、无效和删除 gradle 文件并重建它。还更新到最新版本的 gRPC 版本和 protobuf。也尝试了这个解决方案,但没有奏效。

这是我的 build.gradle (应用程序模块)文件

职业后卫

详细运行过程错误:

0 投票
1 回答
4307 浏览

java - 地图列表使用 Mapstruct 从 Java POJO 到 Protobuf (proto3)

我正在尝试将一些 POJO 从 Java 映射到 Protobuf (proto3)。其中一些包含列表。虽然使用 POJO(例如 List)映射列表没有问题,但我得到了 UnsupportedOperationException。

示例List<Product>(这很有效):

示例List<String>(这不起作用):

此外,我有一些用于构建器的 Mapper:

0 投票
0 回答
731 浏览

maven-plugin - protobuf-maven-plugin 不生成 java 工件

我有以下 Maven 配置,我无法弄清楚为什么没有为我的原型生成 java 工件。我的原型文件在文件夹中

/src/main/proto/hello.proto

当我这样做时,我在控制台中看不到任何错误

mvn包

我正在关注来自 https://codelabs.developers.google.com/codelabs/cloud-grpc-java/index.html?index=..%2F..%2Findex#2的示例

0 投票
1 回答
1550 浏览

java - Lombok (Builder) 对象到 Protobuf 对象


我使用 lombok/auto-value 和构建器模式创建了一个 POJO。我需要将对象转换为由 protobuf 生成的 java 模型。

Protobuf 文件

我正在尝试使用以下库来实现这一点,但失败了。

谁能帮我解决这个问题,或者是否有任何其他库可以进行这种转换或以更好的方式处理它?

0 投票
0 回答
300 浏览

java - Java中protobuf的自定义打印机

我使用的是 protobuf 2.6.1,我有一个复杂的类型,例如 UUID 表示为两个固定 64 字段,时间戳表示为 long 等,需要以更易于阅读的方式打印。

我正在寻找一般扩展所有 protobufs 的 toString 以将复杂类型转换为人类可读类型。

有没有这样的可能?如果 2.6.1 没有,那么 >= 3.0 中是否有任何选项?

0 投票
1 回答
1986 浏览

json - 为包含随机字段名称的 JSON 输入编写 proto 文件

这里是 protobuff 的新手。我正在使用 protobuff 压缩 JSON 文件。问题是这个 JSON 文件来自网络服务器的响应,并且包含名称是随机的某些字段,即每个请求发布到服务器时,键名不同。例如考虑下面的 JSON:

在上面的 json 中,字段名称“abc”、“def”、“ghi”每次都可以变化。protobuf 中有没有办法让我完全获得 field1 的值(如单个字符串或其他任何内容)而不会丢失其中的随机字段?

0 投票
1 回答
4563 浏览

java - 将 json 转换为 Java 中动态生成的 protobuf

给定以下 json 响应:

以及以下user.proto文件:

我希望能够动态创建 protobuf 消息类(在运行时编译 .proto),这样如果 json 响应通过一个字段得到增强,"phone" : "+1234567890"我可以上传一个新版本的 protobuf 文件来包含string phone = 4并获取它protobuf 响应中公开的字段,无需重新启动服务。

如果我要从帽子中提取这些类,我希望能够按照以下代码编写一些东西。

是否有现有的 com.acme.ProtobufUtils.compile(...) 方法?或者如何实施?运行 protoc + load 类似乎有点过头了,但如果没有其他选择,我愿意使用它......

0 投票
1 回答
1428 浏览

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)