bandalore
bandalore copied to clipboard
Some geo-zones may support only the old API
I noticed that as of date only bandalore 0.0.2 (or below) supports the Singapore zone. You might want to mention this in the README.
Could you clarify / link to something that explains the API differences you refer to?
I kept getting the exception with the message "The specified queue does not exist for this wsdl version." until I lowered bandalore version to 0.0.2 in the client when connecting to an SQS instance in Singapore:
Fri Dec 13 11:33:01 UTC 2013 [redacted-1] ERROR - GET /ingest/12/34
Status Code: 400, AWS Service: AmazonSQS, AWS Request ID: 9992e7e1-3b32-5e81-ad0d-acc5c99e0841, AWS Error Code: AWS.SimpleQueueService.NonExistentQueue, AWS Error Message: The specified queue does not exist for this wsdl version.
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:609)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:309)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:164)
at com.amazonaws.services.sqs.AmazonSQSClient.invoke(AmazonSQSClient.java:812)
at com.amazonaws.services.sqs.AmazonSQSClient.sendMessage(AmazonSQSClient.java:540)
at cemerick.bandalore$send.invoke(bandalore.clj:83)
...more...
I think this is a difference in how the underlying AWS library determines which region to connect to. I suspect earlier versions took cues from the queue URL, but later was changed so that the region set on the SQS client itself always dominates the one indicated in the URL. Can you try explicitly setting the region in the SQS client (as created by create-client
) to match the one indicated in your queue URL?
http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/AmazonWebServiceClient.html#setRegion(com.amazonaws.regions.Region)
Not sure if Bandalore's AWS-SDK version matches the LATEST
now, but I am getting this exception when I try to set the Region
:
Caused by: java.lang.ClassNotFoundException: com.amazonaws.regions.Region
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at clojure.lang.DynamicClassLoader.findClass(DynamicClassLoader.java:61)