java.lang.ClassNotFoundException:tomcat 7上的javax.jms.JMSContext

Sau*_*abh 8 tomcat classnotfoundexception

我有一个Spring web应用程序,我试图在tomcat 7上部署.我在tomcat 7启动时遇到以下错误:

引起:

java.lang.ClassNotFoundException:javax.jms.JMSContext

这是因为tomcat找不到javaee-api-7.0.jar我的应用程序WEB-INF/lib文件夹中存在的内容.但是,如果我将其复制到tomcat/lib,则错误被修复并且tomcat可以加载该类.

但我不想将任何额外的罐子复制到tomcat/lib.有人可以在这里帮助,以便tomcat可以在应用程序的lib中找到上面的jar.我错过了任何类路径处理程序条目吗?我没有明确添加任何内容.

sap*_*ati 20

当我使用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>
Run Code Online (Sandbox Code Playgroud)

的根本原因,我发现是,UserCredentialsConnectionFactoryAdapter通过提供类弹簧JMS-5.0.2.RELEASE.jar使用JMSContext内部类.这个类在我使用spring-jms-3.2.4.jar的jms-1.1.jar不可用.

所以我用javax.jms-api-2.0.1.jar替换了jms-1.1.jar

我建议你根据你的春季版本添加/升级​​你的jms jar如上所述.希望这个有效!

  • 在`spring-jms`中,`javax-jms`依赖被标记为`provided`,因此需要由容器添加。 (2认同)