我很难从订户中的pubsub消息中获取消息ID。问题似乎是pubsub消息将ID存储在message_id字段中,但是getMessageId方法正在不存在的messageId字段中寻找消息ID。
我正在尝试从另一个应用程序发布的Pubsub消息中获取消息ID。JSON请求正文如下所示:
{
"message": {
"data": "SomeEncodedDate",
"attributes": {
"Published_Timestamp": "1438970954798"
},
"message_id": "1325068255839"
},
"subscription": "projects/MyProject/subscriptions/MySubscription"
}
我可以使用以下代码成功地重新创建消息:
JsonParser parser = JacksonFactory.getDefaultInstance().createJsonParser(jsonRequest);
parser.skipToKey("message");
PubsubMessage message = parser.parseAndClose(PubsubMessage.class);
如果我在调试器中查看消息,则它在message_id字段中具有有效的消息ID。但是,getMessageId()返回null。如果我使用setMessageId(“ SomeKey”)方法,则消息将包含一个带有新值的messageId新字段。现在,我的消息有两个ID字段,message_id和messageId。现在,调用getMessageId将返回messageId字段值,而不是pubsub消息中实际包含的message_id。
这是错误还是我做错了什么?
不幸的是,我还没有找到其他解决方案。我唯一能做的就是使用以下命令将应该是消息ID的内容复制到messageId字段中:message.setMessageId(message.get(“ message_id”)。toString()); 然后,我可以使用getMessageId方法。这只是一个错误。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句