J'ai écrit une application Spring qui fonctionne sur Weblogic 10.3. Dans cette application, j'ai des consommateurs de la file d'attente JMS.NoClassDefFoundError au printemps
Parfois j'ai eu une erreur lors de l'application de fermeture ou ouverture (je l'ai vu cette erreur dans les deux cas) en disant:
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
Pourquoi puis-je obtenir cette erreur et que dois-je faire pour le résoudre? La version de spring.jar est 2.5.5
Il est dans mon fichier de guerre :) Y at-il un besoin pour cela? –
Dans ce cas, j'imagine que vous avez une sorte de classe de démarrage/arrêt qui appelle cela avant que le fichier war soit chargé. J'essayerais manuellement de placer le fichier jar dans le dossier classpath ou library du serveur et pas seulement dans le fichier war. Parfois, la redondance est la meilleure solution. – Poindexter
Il n'y a aucune classe de démarrage ou d'arrêt que je présente à Weblogic, mais je vais donner un coup de feu :) –