2010-01-06 75 views
2

我寫了一個運行在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

回答

2

該異常意味着該類未被加載到JVM中。確保spring.jar位於Weblogic服務器的類路徑或庫文件夾中。

+0

這是在我的戰爭檔案:)有什麼需要嗎? – 2010-01-06 17:08:55

+0

在這種情況下,我猜測你有一些啓動/關閉類,調用之前戰爭文件被加載。我會手動嘗試將jar文件放在服務器的類路徑或庫文件夾中,而不僅僅是在war文件中。有時冗餘是最好的解決方案。 – Poindexter 2010-01-06 17:32:22

+0

沒有啓動或關閉的類,我介紹給Weblogic,但我會給這個鏡頭:) – 2010-01-08 12:06:13

0

你在戰爭中擁有這個階級是很好的,但在Weblogic中,戰爭有自己的類加載器。由於你的堆棧跟蹤顯示了一個JMS監聽器,我會問:監聽器在哪裏?如果它在戰爭中,那麼你有一個謎。但它確實看起來好像是在別的地方,而且就是在別的地方,這個春天的班級會缺席。

+0

實際上,監聽器在WAR文件中並聲明爲Spring「Message Driven Pojo」 – 2010-02-04 11:08:12

相關問題