В настоящее время я настраиваю сервер Tomcat, на котором работает встроенный брокер ActiveMQ. Я использую Spring для настройки JMS. Я написал тестовое приложение для прослушивания тем, и при выходе из тестового приложения брокер ActiveMQ выдает исключение SocketException. Вот исключение:
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)
Мое тестовое приложение просто загружает контекстный XML-файл, циклы спят каждые 60 секунд.
public static void main(String[] args) {
long numMillisecondsToSleep = 60000;
new ClassPathXmlApplicationContext("client-context.xml");
while (true) {
try {
logger.info("Sleeping for 60 seconds");
Thread.sleep(numMillisecondsToSleep);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
Мне было интересно, кто-нибудь может знать, почему я получаю это исключение. Я очень новичок в ActiveMQ и JMS в целом, поэтому любые идеи будут с благодарностью.