2

Weblogic 10.3 で動作する Spring アプリケーションを作成しました。このアプリケーションには、いくつかの 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 です

4

2 に答える 2

2

この例外は、クラスがJVMにロードされていないことを意味します。spring.jarがWeblogicサーバーのクラスパスまたはライブラリフォルダにあることを確認してください。

于 2010-01-06T16:39:41.443 に答える
0

war にこのクラスがあることはまったく問題ありませんが、Weblogic では、war に独自のクラスローダがあります。あなたのスタック トレースは JMS リスナーを示しているので、私は尋ねます: リスナーはどこですか? それが戦争中なら、あなたには謎があります。しかし、それは確かに別の場所にあるように見えます。この Spring クラスが欠けているのは別の場所です。

于 2010-02-04T00:37:25.277 に答える