获取Java.net.socketException:使用JDK1.7上的RabbitMQ连接上的连接重置错误

发布于 2025-01-26 01:45:46 字数 2533 浏览 3 评论 0原文

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

星光不落少年眉 2025-02-02 01:45:47

如果您看一下 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:
RabbitMQ Java Library Table
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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文