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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java.lang.ClassNotFoundException:tomcat 7上的javax.jms.JMSContext相关的知识,希望对你有一定的参考价值。

我有一个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。我错过了任何类路径处理程序条目吗?我没有明确添加任何内容。

答案

当我使用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>

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

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

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

以上是关于java.lang.ClassNotFoundException:tomcat 7上的javax.jms.JMSContext的主要内容,如果未能解决你的问题,请参考以下文章