[Duplicate] Not support SQS in JMS
Issue #24
resolved
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)
-
Account Deactivated -
reporter Got it! Thanks bro!~
-
Account Deactivated - changed title to [Duplicate] Not support SQS in JMS
-
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
-
Account Deactivated - changed status to resolved
-
reporter @w_hummer It works~ thanks~ looking forward this bug fixing for a long time~ thanks~
- Log in to comment
Thanks for reporting. This is a duplicate of: https://github.com/atlassian/localstack/issues/78 . There is already an existing pull request in moto, the underlying SQS stub library: https://github.com/spulec/moto/pull/919 Once the PR is fixed and merged, we will bump the version and add it to LocalStack.