如何从Amazon SQS发送接收Java对象

时间:2013-12-13 06:27:35

标签: amazon-sqs

如何从SQS发送和接收Java对象。例如,我有一个java对象Log。我将对象作为

发送到消息队列
this.getSqs().sendMessage(new SendMessageRequest(myQueueUrl,log.toString());

但是,在从队列中检索消息时。我希望能够将其检索为List<Log>并将其用作我的应用程序中的java Log对象。有关如何做到这一点的任何指示。

2 个答案:

答案 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。

有关示例,请参阅:SoftwareMill common QueueSoftwareMill common Util