2017-05-09 8 views
0

J'utilise ServiceMix aux côtés des bibliothèques Apache camel et Qpid pour me connecter à un nœud distant afin d'extraire les files d'attente JMS.AmqpProvider - Connexion de transport à distance fermée

config Mon Bean est ::

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

L'utilisation de ce haricot je commence ma demande et voir une réponse positive ::

| 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 

Mais j'obtenir le ci-dessous :: erreur

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

Je ne sais pas pourquoi cela se produirait? Quel autre débogage possible puis-je faire? Tous les pointeurs seraient fortement recommandés.

Répondre

0

Je n'ai pas votre cas d'utilisation avec votre printemps chameau fonctionnant comme dans votre exemple. Mais je suis tombé sur cette même trace de pile que vous aviez pendant un de mes tests unitaires. Ce que j'ai découvert, c'est qu'après avoir explicitement essayé de fermer mon instance de courtier, mon client qpid jms essayait également de fermer la connexion. Jetant ainsi cette exception. Je sais que mon cas d'utilisation n'est pas exactement comme le vôtre, mais j'espère que cela aide un peu. Bonne chance.