Tomcat重启期间org.springframework.jms.listener.DefaultMessageListenerContainer上的NoClassDefFoundError

时间:2016-12-19 06:11:50

标签: java spring tomcat6

我们的应用程序有一个侦听器,它使用来自ActiveMQ代理的消息。但是,在生产环境中,我们添加了脚本以每天重新启动Tomcat服务器。以下是在生产服务器中重新启动tomcat SERVICE的脚本;

date /t >> Restart_Production_Tomcats.log
time /t >> Restart_Production_Tomcats.log
echo "Restart Tomcat Production Server" >> Restart_Production_Tomcats.log
net stop "Application1" >> Restart_Production_Tomcats.log timeout /T 60 /NOBREAK
net start "Application1" >> Restart_Production_Tomcats.log
time /t >> Restart_Production_Tomcats.log
echo "Restart_Production_Tomcats completed" >> Restart_Production_Tomcats.log 
echo "" >> Restart_Production_Tomcats.log 

通常,在重新启动期间,日志文件会在每次重新启动时获得以下异常一次;

Exception in thread "org.springframework.jms.listener.DefaultMessageListenerContainer#0-3834" java.lang.NoClassDefFoundError: org/springframework/jms/connection/SmartConnectionFactory 
at org.springframework.jms.connection.ConnectionFactoryUtils.releaseConnection(ConnectionFactoryUtils.java:71) 
at org.springframework.jms.listener.AbstractJmsListeningContainer.refreshSharedConnection(AbstractJmsListeningContainer.java:386) 
at org.springframework.jms.listener.DefaultMessageListenerContainer.refreshConnectionUntilSuccessful(DefaultMessageListenerContainer.java:869) 
at org.springframework.jms.listener.DefaultMessageListenerContainer.recoverAfterListenerSetupFailure(DefaultMessageListenerContainer.java:851) 
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:982) 
at java.lang.Thread.run(Thread.java:722)

然而,在某一天,我得到了超过 3000 这样的例外,那天甚至Tomcat也无法正常重启。 对我来说,似乎JVM类加载器找不到 重启期间org.springframework.jms.listener.DefaultMessageListenerContainer课程

有人可以解释重启tomcat时发生的事情以及我为什么会遇到此异常?但是,在我们的开发环境中,我无法复制此问题,甚至我们也无法在其他生产环境中看到此问题。是否由于在侦听器处理来自ActiveMQ的消息时重启Tomcat服务器?或重启脚本的一些问题?

我发现了类似的问题,NoClassDefFoundError in spring但是,我对这个问题的问题找不到明确的答案。

0 个答案:

没有答案