【发布时间】:2015-08-19 20:33:09
【问题描述】:
在 ruby 中序列化 protobuf 对象并在 Java 中解析的正确方法是什么?这是用于自动化测试,我们正在 Rabbit 队列上监听此消息。
发布者(Ruby):
protoNew = Protobuf::Request.new
protoNew.request = request
protoNew.id = id.to_i
protoNew.authentication = authentication
return protoNew.serialize_to_string
消费者(Java):
@Override
public void onMessage(Message message, Channel channel)
{
ProtoRequest protoRequest;
try {
protoRequest = ProtoRequest.parseFrom(message.getBody());
} catch (InvalidProtocolBufferException e1) {
logger.error("Error parsing protobuf", e1);
}
这是我看到的错误:
解析 protobuf 时出错:com.google.protobuf.InvalidProtocolBufferException:协议消息结束组标记与预期标记不匹配。 在 com.google.protobuf.InvalidProtocolBufferException.invalidEndTag(InvalidProtocolBufferException.java:94) [protobuf-java-2.6.1.jar:] 在 com.google.protobuf.CodedInputStream.checkLastTagWas(CodedInputStream.java:174) [protobuf-java-2.6.1.jar:] 在 com.google.protobuf.AbstractParser.parsePartialFrom(AbstractParser.java:139) [protobuf-java-2.6.1.jar:] 在 com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:168) [protobuf-java-2.6.1.jar:] 在 com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:180) [protobuf-java-2.6.1.jar:] 在 com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:185) [protobuf-java-2.6.1.jar:] 在 com.google.protobuf.AbstractParser.parseFrom(AbstractParser.java:49) [protobuf-java-2.6.1.jar:]
【问题讨论】:
标签: java ruby rabbitmq protocol-buffers