我们正在处理从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();`