NoClassDefFoundError весной - PullRequest
       21

NoClassDefFoundError весной

2 голосов
/ 06 января 2010

Я написал приложение Spring, которое работает на Weblogic 10.3. В этом приложении у меня есть несколько потребителей JMS Queue.

Иногда я получаю сообщение об ошибке при закрытии или открытии приложения (я видел эту ошибку в обеих ситуациях), говоря:

    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

Ответы [ 2 ]

2 голосов
/ 06 января 2010

Это исключение означает, что класс не загружается в JVM. Убедитесь, что spring.jar находится в папке classpath или библиотеки сервера Weblogic.

0 голосов
/ 04 февраля 2010

Очень хорошо, что у вас есть этот класс в вашей войне, но в Weblogic у войны есть собственный загрузчик классов. Так как ваша трассировка стека показывает слушателя JMS, я бы спросил: где слушатель? Если это на войне, то у вас есть загадка. Но это выглядит так, как будто это где-то еще, и это то, что где-то еще будет отсутствовать этот класс Spring.

...