2009-06-09 6 views
0

Je suis en train de configurer un serveur Tomcat qui exécute un courtier ActiveMQ intégré. J'utilise Spring pour configurer JMS. J'ai écrit une application de test pour écouter les sujets et quand je quitte l'application de test le courtier ActiveMQ jette SocketException. Voici l'exception:SocketException dans ActiveMQ lors de la sortie de l'application auditeur

2009-06-09 13:12:48,005 DEBUG Transport:229 - Transport failed: java.net.SocketException: Connection reset 
java.net.SocketException: Connection reset 
     at java.net.SocketInputStream.read(SocketInputStream.java:168) 
     at org.apache.activemq.transport.tcp.TcpBufferedInputStream.fill(TcpBufferedInputStream.java:50) 
     at org.apache.activemq.transport.tcp.TcpBufferedInputStream.read(TcpBufferedInputStream.java:58) 
     at java.io.DataInputStream.readInt(DataInputStream.java:370) 
     at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:269) 
     at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:210) 
     at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:202) 
     at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185) 
     at java.lang.Thread.run(Thread.java:619) 

Mon application de test des charges juste le fichier xml contexte, des boucles peut accueillir toutes les 60 secondes. Je me demandais si quelqu'un pourrait savoir pourquoi je reçois cette exception. Je suis très nouveau sur ActiveMQ et JMS en général donc toutes les idées seraient grandement appréciées.

Répondre

0

Je pense qu'il ya une façon de fermer un courtier intégré bien au moyen d'un appel de méthode. Poster votre config avec votre code d'intégration aidera les gens à comprendre ce qui se passe.

+0

Je l'ai compris. Je dois appeler close() sur l'objet ClassPathXmlApplicationContext avant que le programme d'essai se termine. Cela permettra au printemps fermer correctement les messages et les connexions Les auditeurs ont été créés pour consommer des messages avec le courtier ActiveMQ. –

+0

Ok. Vous avez probablement des méthodes init/destroy spécifiées dans votre fichier XML Spring pour ActiveMQ? Ça a du sens. – ShabbyDoo

0

Je recommande la recherche pour les JmsTemplates de printemps; il enveloppe toute la complexité de MQ dans un joli paquet et assure que de petites erreurs comme celle-ci ne vous causent pas des heures de problèmes.

http://activemq.apache.org/spring-support.html

Questions connexes