web-dev-qa-db-ja.com

java.lang.ClassNotFoundException:Tomcat 7のjavax.jms.JMSContext

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を見つけることができるように、誰かがここで手伝ってくれる?クラスパスハンドラエントリが不足していますか?明示的に追加していません。

10
Saurabh

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.jarjavax.jms-api-2.0.1.jarに置き換えました

春のバージョンに応じて、上記のようにjms jarを追加/アップグレードすることをお勧めします。これがうまくいくことを願っています!

25
sapan prajapati

私は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

0
blacktiago