如何从SQS发送和接收Java对象。例如,我有一个java对象Log。我将对象作为
发送到消息队列this.getSqs().sendMessage(new SendMessageRequest(myQueueUrl,log.toString());
但是,在从队列中检索消息时。我希望能够将其检索为List<Log>
并将其用作我的应用程序中的java Log对象。有关如何做到这一点的任何指示。
答案 0 :(得分:1)
我使用Gson将pojo序列化和反序列化为字符串
您将上面的消息发送为
sendMessage(new SendMessageRequest(myQueueUrl,log.toString());
then when you get a List<Messages> messages = sns.read();
for(Message m:messages){
String json= m.getBody();
Gson g = new Gson();
Log l = g.fromJson(json,Log.class);
}
答案 1 :(得分:0)
您必须将邮件序列化为字符串,并确保所有字符都在允许的字符范围内。
一种方法是使用Java序列化(虽然它不是序列化的最佳方法,但它通常有效),然后使用例如编码结果进行编码。 BASE64。