获取Java.net.socketException:使用JDK1.7上的RabbitMQ连接上的连接重置错误
JDK版本
- 1.7
RabbitMQ:
aws RabbitMQ -AMQPS协议
Java Client Maven:
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>4.12.0</version>
</dependency>
我正在尝试使用以下代码来创建RabbitMQ连接,
//Establish the Rabbbit MQ connection;
ConnectionFactory factory = new ConnectionFactory();
factory.setUsername(userName);
factory.setPassword(password);
factory.setHost(hostName);
factory.setPort(5671);
factory.useSslProtocol();
connection = factory.newConnection();
但是I在低于错误之下,
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:196)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)
at sun.security.ssl.InputRecord.readV3Record(InputRecord.java:554)
at sun.security.ssl.InputRecord.read(InputRecord.java:506)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:934)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)
at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:709)
at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:122)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
at java.io.DataOutputStream.flush(DataOutputStream.java:123)
at com.rabbitmq.client.impl.SocketFrameHandler.sendHeader(SocketFrameHandler.java:160)
at com.rabbitmq.client.impl.SocketFrameHandler.sendHeader(SocketFrameHandler.java:170)
at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:312)
at com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:63)
at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.init(AutorecoveringConnection.java:177)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1181)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1138)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1096)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1256)
有人可以帮助我使用JDK 1.7解决此问题吗?同一代码在Java 8中使用。
JDK Version
- 1.7
RabbitMQ:
AWS RabbitMQ - amqps protocol
Java Client Maven:
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>4.12.0</version>
</dependency>
I am trying to create the RabbitMQ connection using the below code,
//Establish the Rabbbit MQ connection;
ConnectionFactory factory = new ConnectionFactory();
factory.setUsername(userName);
factory.setPassword(password);
factory.setHost(hostName);
factory.setPort(5671);
factory.useSslProtocol();
connection = factory.newConnection();
But I am getting below error,
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:196)
at java.net.SocketInputStream.read(SocketInputStream.java:122)
at sun.security.ssl.InputRecord.readFully(InputRecord.java:442)
at sun.security.ssl.InputRecord.readV3Record(InputRecord.java:554)
at sun.security.ssl.InputRecord.read(InputRecord.java:506)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:934)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1332)
at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:709)
at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:122)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
at java.io.DataOutputStream.flush(DataOutputStream.java:123)
at com.rabbitmq.client.impl.SocketFrameHandler.sendHeader(SocketFrameHandler.java:160)
at com.rabbitmq.client.impl.SocketFrameHandler.sendHeader(SocketFrameHandler.java:170)
at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:312)
at com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:63)
at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.init(AutorecoveringConnection.java:177)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1181)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1138)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1096)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1256)
Can someone please help me to resolve this issue using the JDK 1.7? The same code is working in the Java 8.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您看一下 rabbitmq for Rabbitmq JDK版本的所有受支持库是JDK版本8:

这意味着它只能与JDK版本8(1.8)或更高版本一起使用。
Also, just some extra info, but Oracle is also 从2022年7月开始删除对JDK 1.7的支持。这意味着不会再有任何安全补丁和错误。
If you take a look at the Java libraries for RabbitMQ, you can see that the minimum JDK version of all supported libraries is JDK version 8:

That means that it'll only work with JDK version 8 (1.8) or higher.
Also, just some extra info, but Oracle is also dropping support for JDK 1.7 from july 2022 onwards. Meaning there won't be any security patches and bugfixes anymore.