【问题标题】:How to send and receive a Java Object from Amazon SQS如何从 Amazon SQS 发送和接收 Java 对象
【发布时间】:2020-09-12 05:38:00
【问题描述】:

如何从 SQS 发送和接收 Java 对象?例如,我有一个 java 对象 Log。我将对象发送到消息队列

this.getSqs().sendMessage(new SendMessageRequest(myQueueUrl, log.toString());

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

【问题讨论】:

    标签: amazon-sqs


    【解决方案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);
    }
    

    【讨论】:

      【解决方案2】:

      您必须将消息序列化为字符串,另外确保所有字符都在允许的字符范围内。

      一种方法是使用 Java 序列化(虽然它不是序列化的最佳方法,但它通常有效),然后使用例如编码结果Base64。

      示例见:SoftwareMill common QueueSoftwareMill common Util

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-07-22
        • 2018-09-13
        • 1970-01-01
        • 2014-09-26
        • 1970-01-01
        相关资源
        最近更新 更多