尝试使用Google Protobuf处理以字节为单位的邮件,但有时会收到“协议邮件端组标签与预期标签不匹配”

时间:2019-05-06 15:55:03

标签: protocol-buffers

我们正在处理从byte[]中的队列接收到的消息。并使用google Protobuf-java-2.6.1.jar中的mergeFrom调用com.google.protobuf.AbstractMessage中的com.google.protobuf.CodedInputStream来处理它们。

有时,邮件已成功处理,但有时会抛出InvalidProtocolBufferException.invalidTag()

我知道“ protobuf中的组被写为开始/结束数字对”,但是当我们收到byte[]中的消息时,如何确定开始和结束标记是什么以及结束是什么组标签与预期标签不匹配?

有时,同一条消息在本地Windows计算机上成功处理,但是同一条消息在Linux机器上失败。

Message.Builder builder = getMessageBuilder(messageType);
ExtensionRegistry registry = ExtensionRegistry.newInstance();
Message parsedMessage = builder.mergeFrom(message, registry).build();`  
  • 消息是一个字节[]。
  • 第三行引发异常。

0 个答案:

没有答案