我正在尝试使用微软网站上提供的java example连接到Windows服务器的服务总线。
以下是我为此POC使用的库
<dependency>
<groupId>org.apache.qpid</groupId>
<artifactId>qpid-jms-client</artifactId>
<version>0.26.0</version>
</dependency>
<dependency>
<groupId>org.apache.qpid</groupId>
<artifactId>qpid-amqp-1-0-client-jms</artifactId>
<version>0.32</version>
</dependency>
以下是我正在使用的连接字符串格式
return "amqps://" + SbSharedKey + ":" + SbSharedSecret + "@" + SbDomain + "/" + SbNamespace;
我有与网站上完全相同的代码,但是给出了以下错误
初始设置创建上下文创建连接工厂创建 连接
创建会话 创建会话/制作人的例外
java.net.SocketException:Socket已关闭 java.net.SocketInputStream.socketRead0(Native Method)at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) javax.jms.JMSException:class java.net.SocketException:Connection 由远程hostclass java.net.SocketException关闭:连接已关闭 由远程主机在 java.net.SocketInputStream.read(SocketInputStream.java:170)at java.net.SocketInputStream.read(SocketInputStream.java:141)at
的sun.security.ssl.InputRecord.readFully(InputRecord.java:465)处理完成,退出代码为0
我试图做SSLPoke并且它取得了成功,
所以问题只出现在AMQP方面..你能否指出我在连接windows server service bus using amqp from java
时使用的库的正确版本
答案 0 :(得分:1)
您在项目中使用了两个不同的AMQP JMS客户端库依赖项,因此我不知道它到底发生了什么,但我的第一个猜测是您最终使用了遗产&#39; qpid -amqp-1-0-客户JMS&#39;客户端不受支持,绝对不会工作。我删除了它并尝试使用Qpid JMS 0.26.0客户端库来完成任务,尽管我相信您可能需要一些其他URI选项,因为azure有一些特定的要求才能连接。
答案 1 :(得分:0)
我能够使用以下版本的jar
解决问题 <dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jms_1.1_spec</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.qpid</groupId>
<artifactId>qpid-amqp-1-0-client-jms</artifactId>
<version>0.22</version>
</dependency>