获得"同行未通过身份验证"在Amazon SQS异常身份验证、同行、异常、QUOT

2023-09-11 09:28:14 作者:洎殺。蓅哘

当从一个JAR本地运行以下code:

When running the following code from a JAR locally:

public static List<Message> getMessages(AmazonSQS sqs, String queueUrl) throws IOException {
    ReceiveMessageRequest receiveMessageRequest = new ReceiveMessageRequest(queueUrl).withWaitTimeSeconds(5);
    List<Message> messages = sqs.receiveMessage(receiveMessageRequest).getMessages();
    return messages;
}

它工作得很好。但是,试图在一个EC2实例远程运行它的时候,我得到了以下异常:

It works just fine. But when trying to run it remotely on an EC2 instance, I get the following exception:

2014年4月15号下午8时30分48秒com.amazonaws.http.AmazonHttpClient   executeHelper信息:无法执行HTTP请求:同行不   认证javax.net.ssl​​.SSLPeerUnverifiedException:同行不   认证           在sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:371)           在org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:126)           在org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:572)           在org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:1   80)           在org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294)           在org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:645)           在org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:480)           在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906)           在org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805)           在com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:384)           在com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:232)           在com.amazonaws.services.sqs.AmazonSQSClient.invoke(AmazonSQSClient.java:2170)           在com.amazonaws.services.sqs.AmazonSQSClient.receiveMessage(AmazonSQSClient.java:942)           在Utils.getMessages(Utils.java:80)           在Manager.run(Manager.java:51)           在Main.main(Main.java:10)           在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)           在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)           在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)           在java.lang.reflect.Method.invoke(Method.java:616)           在org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)

Apr 15, 2014 8:30:48 PM com.amazonaws.http.AmazonHttpClient executeHelper INFO: Unable to execute HTTP request: peer not authenticated javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated at sun.security.ssl.SSLSessionImpl.getPeerCertificates(SSLSessionImpl.java:371) at org.apache.http.conn.ssl.AbstractVerifier.verify(AbstractVerifier.java:126) at org.apache.http.conn.ssl.SSLSocketFactory.connectSocket(SSLSocketFactory.java:572) at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:1 80) at org.apache.http.impl.conn.ManagedClientConnectionImpl.open(ManagedClientConnectionImpl.java:294) at org.apache.http.impl.client.DefaultRequestDirector.tryConnect(DefaultRequestDirector.java:645) at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:480) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:906) at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:805) at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:384) at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:232) at com.amazonaws.services.sqs.AmazonSQSClient.invoke(AmazonSQSClient.java:2170) at com.amazonaws.services.sqs.AmazonSQSClient.receiveMessage(AmazonSQSClient.java:942) at Utils.getMessages(Utils.java:80) at Manager.run(Manager.java:51) at Main.main(Main.java:10) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)

在搜索这些例外只带了谁使用HttpClient的明确,以及解决问题的人,这似乎非常不相关的我的用法。

Searching for these exceptions only brought up questions by people who use the HttpClient explicitly, along with solutions which seem very irrelevant for my usage.

推荐答案

问题是我用错了急性心肌梗死,不兼容的JRE。

Problem was I used the wrong AMI, with incompatible JRE.