0

我正在尝试使用微软网站上提供的java 示例连接到 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:套接字在 java.net.SocketInputStream.socketRead(SocketInputStream.java:116)处的 java.net.SocketInputStream.socketRead0(本机方法)处关闭 javax.jms.JMSException:类 java.net.SocketException:连接已关闭通过远程主机类 java.net.SocketException:连接被远程主机在 java.net.SocketInputStream.read(SocketInputStream.java:170) 在 java.net.SocketInputStream.read(SocketInputStream.java:141) 在 sun.security.ssl .InputRecord.readFully(InputRecord.java:465) 在

进程以退出代码 0 结束

我尝试做SSLPoke并且它取得了成功,

所以问题似乎只在 AMQP 方面。你能否指出我在连接到时使用的正确版本的库windows server service bus using amqp from java

4

2 回答 2

1

您在项目中使用了两个不同的 AMQP JMS 客户端库依赖项,所以我不知道到底发生了什么,但我的第一个猜测是您最终使用的是旧的 'qpid-amqp-1-0-client-jms' 客户端这是不受支持的,绝对不会工作。我将删除它并尝试仅使用 Qpid JMS 0.26.0 客户端库来解决问题,尽管我相信您可能需要其他一些 URI 选项,因为 azure 有一些特定的要求才能连接。

于 2017-10-13T13:34:39.157 回答
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>
于 2017-10-16T10:47:55.463 回答