2017-05-09 17 views
0

Apache 대기열 및 Qpid 라이브러리와 함께 ServiceMix를 사용하여 원격 대기열에 연결하여 JMS 대기열을 가져옵니다.AmqpProvider - 전송 연결을 원격으로 닫습니다.

내 콩의 설정이다 ::

<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> 

내가 내 응용 프로그램을 시작하고 몇 가지 긍정적 인 반응 ::

| 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 

볼이 빈을 사용하지만 나는 아래 ERROR :

를 얻을 수
| 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] 

나는 왜 이런 일이 일어날 지 현재 우둔한가요? 다른 가능한 디버깅은 무엇입니까? 모든 포인터를 적극 권장합니다.

답변

0

귀하의 사례에서와 같이 봄 낙타를 사용하는 유스 케이스가 없습니다. 하지만 제 단위 테스트 중 하나와 똑같은 스택 추적을 받았습니다. 내가 알기로 명시 적으로 브로커 인스턴스를 닫으려고하면 qpid jms 클라이언트도 연결을 닫으려고 시도합니다. 따라서 예외를 throw합니다. 내 유스 케이스가 너와 정확히 같지 않다는 것을 알지만, 조금 도움이되기를 바랍니다. 행운을 빕니다.