Tomcat 7にデプロイしようとしているSpring Webアプリケーションがあります。Tomcat7の起動時に次のエラーが発生しました。
のせいで:
Java.lang.ClassNotFoundException:javax.jms.JMSContext
これは、アプリケーションのjavaee-api-7.0.jar
フォルダにあるWEB-INF/lib
をTomcatが見つけられなかったためです。ただし、これをTomcat/lib
にコピーすると、エラーが修正され、Tomcatがクラスをロードできます。
しかし、追加のjarファイルをTomcat/libにコピーしたくありません。 Tomcatがアプリケーションのlibで上記のjarを見つけることができるように、誰かがここで手伝ってくれる?クラスパスハンドラエントリが不足していますか?明示的に追加していません。
Tomcat-7を使用してアプリケーションをデプロイしているときに、spring-3.0からspring-5.0に移動したときにも同じ問題に直面していました。 pom.xmlファイルに以下のmaven依存関係を追加しましたが、解決されました。
<dependency>
<groupId>javax.jms</groupId>
<artifactId>javax.jms-api</artifactId>
<version>2.0.1</version>
</dependency>
私が見つけた根本的な原因は、serCredentialsConnectionFactoryAdapterspring-jms-5.0.2.RELEASE.jar)が提供するクラス内部でJMSContextクラスを使用していたことです。このクラスはjms-1.1.jarでは使用できませんでしたspring-jms-3.2.4.jarで使用していました。
だから私はjms-1.1.jarをjavax.jms-api-2.0.1.jarに置き換えました
春のバージョンに応じて、上記のようにjms jarを追加/アップグレードすることをお勧めします。これがうまくいくことを願っています!
私はApache karaf 4.2.7 JDK 11.0.2上の環境で同じ問題を抱えていましたが、私の場合は例外が表示されます
原因:Java.lang.ClassNotFoundException:javax.jms.JMSContext not found by org.Apache.geronimo.specs.geronimo-jms_1.1_spec
インストールすると機能します:bundle:install mvn:javax.jms/javax.jms-api/2.0.1