我写了一个运行在Weblogic 10.3上的Spring应用程序。在这个应用程序中,我有一些JMS Queue使用者。NoClassDefFoundError in spring
有时候,我得到了在应用程序关闭或打开(我看到在这两个情况下这个错误)说的错误:
java.lang.NoClassDefFoundError: org/springframework/jms/connection/SmartConnectionFactory
at org.springframework.jms.connection.ConnectionFactoryUtils.releaseConnection(ConnectionFactoryUtils.java:72)
at org.springframework.jms.listener.AbstractJmsListeningContainer.refreshSharedConnection(AbstractJmsListeningContainer.java:385)at org.springframework.jms.listener.DefaultMessageListenerContainer.refreshConnectionUntilSuccessful(DefaultMessageListenerContainer.java:779)
at org.springframework.jms.listener.DefaultMessageListenerContainer.recoverAfterListenerSetupFailure(DefaultMessageListenerContainer.java:761)
at org.springframework.jms.listener.DefaultMessageListenerContainer$AsyncMessageListenerInvoker.run(DefaultMessageListenerContainer.java:892)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: org.springframework.jms.connection.SmartConnectionFactory
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:283)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:256)
at weblogic.utils.classloaders.ChangeAwareClassLoader.findClass(ChangeAwareClassLoader.java:54)
at java.lang.ClassLoader.loadClass(ClassLoader.java:303)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:176)
at weblogic.utils.classloaders.ChangeAwareClassLoader.loadClass(ChangeAwareClassLoader.java:35)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
... 6 more
为什么会出现这个错误,我应该怎么做才能解决呢? spring.jar的版本是2.5.5
这是在我的战争档案:)有什么需要吗? – 2010-01-06 17:08:55
在这种情况下,我猜测你有一些启动/关闭类,调用之前战争文件被加载。我会手动尝试将jar文件放在服务器的类路径或库文件夹中,而不仅仅是在war文件中。有时冗余是最好的解决方案。 – Poindexter 2010-01-06 17:32:22
没有启动或关闭的类,我介绍给Weblogic,但我会给这个镜头:) – 2010-01-08 12:06:13