首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AmqpProvider -传输连接已远程关闭

AmqpProvider -传输连接已远程关闭
EN

Stack Overflow用户
提问于 2017-05-10 04:11:31
回答 2查看 1.4K关注 0票数 0

我正在使用ServiceMix以及Apache camel和Qpid库来连接到远程节点来获取JMS队列。

我的Bean配置是::

代码语言:javascript
复制
  <bean id="amqp" class="org.apache.camel.component.amqp.AMQPComponent">
    <property name="connectionFactory">
       <bean class="org.apache.qpid.jms.JmsConnectionFactory">
          <property name="remoteURI" value="amqp://esesslxjks.se:9443" />
       </bean>
    </property>
  </bean>

 <camelContext xmlns="http://camel.apache.org/schema/blueprint">
    <!-- Master Data Queue -->
    <route>
      <from uri="amqp:queue:///CS_output" />
      <log message="Copying o the output directory"/>
      <to uri="amqp:queue:///CS_input" />
    </route>

使用这个bean,我启动了我的应用程序,看到一些积极的响应:

代码语言:javascript
复制
| DEBUG | mix-7.0.0/deploy | JmsProducer                      | 43 - org.apache.camel.camel-core - 2.16.4 | Starting producer: Producer[amqp://queue:///CSDP_input]
| DEBUG | mix-7.0.0/deploy | JmsConsumer                      | 43 - org.apache.camel.camel-core - 2.16.4 | Starting consumer: Consumer[amqp://queue:///CSDP_output]
| DEBUG | mix-7.0.0/deploy | BlueprintCamelContext            | 43 - org.apache.camel.camel-core - 2.16.4 | Route: route1 >>> EventDrivenConsumerRoute[Endpoint[amqp://queue:///CS_output] -> Pipeline[[Channel[Log(route1)[Copying o the output directory]], Channel[sendTo(Endpoint[amqp://queue:///CS_input])]]]]
| DEBUG | mix-7.0.0/deploy | faultJmsMessageListenerContainer | 154 - org.apache.servicemix.bundles.spring-jms - 3.2.17.RELEASE_1 | Established shared JMS Connection

但随后我得到以下错误::

代码语言:javascript
复制
| DEBUG | esesslxjks.se:9443] | AmqpProvider                     | 226 - qpid-jms-client.jar - 0.0.0 | Transport connection remotely closed
| DEBUG | esesslxjks.se:9443] | JmsConnection                    | 226 - qpid-jms-client.jar - 0.0.0 | Async exception with no exception listener: java.io.IOException: Connection remotely closed.
java.io.IOException: Connection remotely closed.
     at org.apache.qpid.jms.provider.amqp.AmqpProvider$18.run(AmqpProvider.java:727)[226:qpid-jms-client.jar:0.0.0]
     at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_121]
     at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_121]
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)[:1.8.0_121]
     at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)[:1.8.0_121]
     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_121]
     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_121]
     at java.lang.Thread.run(Thread.java:745)[:1.8.0_121]

我现在不知道为什么会发生这种情况?我还能做什么其他可能的调试?任何指针都会被强烈推荐。

EN

回答 2

Stack Overflow用户

发布于 2018-01-21 13:48:17

我没有让您的spring camel像您的示例那样运行的用例。但是在我的一次单元测试中,我遇到了与您完全相同的堆栈跟踪。我发现,在我显式地尝试关闭我的代理实例之后,我的qpid jms客户端也会尝试关闭连接。从而抛出该异常。我知道我的用例与您的用例不太一样,但我希望这会有一点帮助。祝好运。

票数 0
EN

Stack Overflow用户

发布于 2019-01-14 14:21:50

在您的remoteURI属性上,使用amqps协议而不是amqp。

ServiceBus将拒绝它,因为它使用了不受支持的协议。

代码语言:javascript
复制
  <bean id="amqp" class="org.apache.camel.component.amqp.AMQPComponent">
    <property name="connectionFactory">
       <bean class="org.apache.qpid.jms.JmsConnectionFactory">
          <property name="remoteURI" value="amqps://esesslxjks.se:9443" />
       </bean>
    </property>
  </bean>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43879026

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档