gpt4 book ai didi

java - 无法使用 boto SDK 收听从 python 生成的 java SqsListener 中的 SQS 消息

转载 作者:行者123 更新时间:2023-11-30 08:14:58 26 4
gpt4 key购买 nike

我正在使用 boto SDK 将消息发送到 Amazon-SQS。无论我发送什么消息,它都必须使用用 java 编写的 SqsListener 进行监听。当我发送消息时,我无法从用 python 编写的生产者类中获得我发送的确切消息。在 SQSListener 类中,我只是尝试打印我得到的消息。我收到的是加密形式的消息,而不是实际消息。

实际消息:示例消息

收到消息U2FtcGxlIG1lc3NhZ2U=

用python编写的producer类是:

from boto import sqs
import json
from boto.sqs.message import Message

conn = sqs.connect_to_region('XXXXX', aws_access_key_id='XXXXXXXXXXXX', aws_secret_access_key='XXXXXXXXXXXXXXXXXXXXXXX')
queueInstance = conn.get_queue('sample')
try:
message = Message()
message.set_body("testing sample")
queueInstance.write(message)
except Exception, error:
print error

接收器 SQSListener 类是:

import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.TextMessage;


public class SQSMessageLisner implements MessageListener {

public void onMessage(Message message) {
try {
System.out.println("Inside ON MESSAGE");
//System.out.println(message.get);
String stringMessage = ((TextMessage) message).getText();
System.out.println(stringMessage);
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

消息的发送和接收都是用相同的 SDK 编写的,工作正常。从 python 发送并在 java 中监听会导致这个问题。请帮我解决这个问题。提前致谢。

最佳答案

您在接收器中收到一条 base64 编码的消息。您需要对其进行解码,如此处所述Decode Base64 data in Java

您的另一个选择是在 python 中使用 boto.sqs.message.RawMessage 而不是 TextMessage,后者不会被编码。

关于java - 无法使用 boto SDK 收听从 python 生成的 java SqsListener 中的 SQS 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29204935/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com