[Duplicate] Not support SQS in JMS

Issue #24 resolved
yezhongkai created an issue

I use the lastest docker image, and try to send the message by javax.jms.MessageProducer, but i got the issue below:

AmazonClientException: sendMessage.
com.amazonaws.AmazonClientException: MD5 returned by SQS does not match the calculation on the original request. (MD5 calculated by the message attributes: "3226c32921e2bcda84eed17654164acc", MD5 checksum returned: "324758f82d026ac6ec5b31a3b192d1e3")
    at com.amazonaws.services.sqs.MessageMD5ChecksumHandler.sendMessageOperationMd5Check(MessageMD5ChecksumHandler.java:120)
    at com.amazonaws.services.sqs.MessageMD5ChecksumHandler.afterResponse(MessageMD5ChecksumHandler.java:80)
    at com.amazonaws.handlers.RequestHandler2Adaptor.afterResponse(RequestHandler2Adaptor.java:49)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.afterResponse(AmazonHttpClient.java:905)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:679)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:650)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:633)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$300(AmazonHttpClient.java:601)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:583)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:447)
    at com.amazonaws.services.sqs.AmazonSQSClient.doInvoke(AmazonSQSClient.java:1555)
    at com.amazonaws.services.sqs.AmazonSQSClient.invoke(AmazonSQSClient.java:1531)
    at com.amazonaws.services.sqs.AmazonSQSClient.sendMessage(AmazonSQSClient.java:1334)
    at com.amazon.sqs.javamessaging.AmazonSQSMessagingClientWrapper.sendMessage(AmazonSQSMessagingClientWrapper.java:182)
    at com.amazon.sqs.javamessaging.SQSMessageProducer.sendInternal(SQSMessageProducer.java:114)
    at com.amazon.sqs.javamessaging.SQSMessageProducer.send(SQSMessageProducer.java:275)
    at sqs.JMSSynchronouslyTest.sendMessage(JMSSynchronouslyTest.java:149)
    at sqs.Bootstrap.main(Bootstrap.java:40)AmazonClientException: sendMessage.
com.amazonaws.AmazonClientException: MD5 returned by SQS does not match the calculation on the original request. (MD5 calculated by the message attributes: "3226c32921e2bcda84eed17654164acc", MD5 checksum returned: "324758f82d026ac6ec5b31a3b192d1e3")
    at com.amazonaws.services.sqs.MessageMD5ChecksumHandler.sendMessageOperationMd5Check(MessageMD5ChecksumHandler.java:120)
    at com.amazonaws.services.sqs.MessageMD5ChecksumHandler.afterResponse(MessageMD5ChecksumHandler.java:80)
    at com.amazonaws.handlers.RequestHandler2Adaptor.afterResponse(RequestHandler2Adaptor.java:49)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.afterResponse(AmazonHttpClient.java:905)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:679)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:650)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:633)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$300(AmazonHttpClient.java:601)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:583)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:447)
    at com.amazonaws.services.sqs.AmazonSQSClient.doInvoke(AmazonSQSClient.java:1555)
    at com.amazonaws.services.sqs.AmazonSQSClient.invoke(AmazonSQSClient.java:1531)
    at com.amazonaws.services.sqs.AmazonSQSClient.sendMessage(AmazonSQSClient.java:1334)
    at com.amazon.sqs.javamessaging.AmazonSQSMessagingClientWrapper.sendMessage(AmazonSQSMessagingClientWrapper.java:182)
    at com.amazon.sqs.javamessaging.SQSMessageProducer.sendInternal(SQSMessageProducer.java:114)
    at com.amazon.sqs.javamessaging.SQSMessageProducer.send(SQSMessageProducer.java:275)
    at sqs.JMSSynchronouslyTest.sendMessage(JMSSynchronouslyTest.java:149)
    at sqs.Bootstrap.main(Bootstrap.java:40)

And here is my java code about createQueue &send message

public static void createQueue() {
        Map attributeMap = new HashMap();
        //Unit is seconds, from 0 to 900
        attributeMap.put("DelaySeconds", "0");
        //Unit is byte, from 1024(1KB) to 262144 (256 KB)
        attributeMap.put("MaximumMessageSize", "262144");
        //Unit is second, from 60 (1 minute) to 1209600 (14 days)
        attributeMap.put("MessageRetentionPeriod", "1209600");
        //Unit is second, from 0 to 20 (seconds)
        attributeMap.put("ReceiveMessageWaitTimeSeconds", "20");
        //Unit is second, 0 to 43200 (12 hours)
        attributeMap.put("VisibilityTimeout", "30");

        CreateQueueRequest createQueueRequest = new CreateQueueRequest("aws_develop_class_jms").withAttributes(attributeMap);
        try {
            CreateQueueResult result = getClientWrapper().createQueue(createQueueRequest);

            System.out.println(result.getQueueUrl());
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }

public static void sendMessage() {
        try {
            Queue queue = getAutoAckSession().createQueue("aws_develop_class_jms");
            MessageProducer producer = getAutoAckSession().createProducer(queue);
            TextMessage message = getAutoAckSession().createTextMessage("This is a message!");
            producer.send(message);
            System.out.println("JMS Message " + message.getJMSMessageID());
        } catch (JMSException e) {
            e.printStackTrace();
        }
        System.out.println("Finished");
    }

Any solution about this?

Comments (6)

  1. Waldemar Hummer Account Deactivated

    The fix has now been merged into moto, we have bumped the version in LocalStack. Please pull the latest version and give it a try. Feel free to re-open if the problem persists. Thanks

  2. Log in to comment