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

时间:2017-05-29 07:32:07

标签: 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可以加载该类。

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

2 个答案:

答案 0 :(得分:16)

当我使用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 中没有此类。

所以我将 jms-1.1.jar 替换为 javax.jms-api-2.0.1.jar

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

答案 1 :(得分:0)

在JDK 11.0.2的 Apache karaf 4.2.7 环境中,我遇到了同样的问题,在我的情况下,异常打印

原因:java.lang.ClassNotFoundException:找不到javax.jms.JMSContext ,由org.apache.geronimo.specs.geronimo-jms_1.1_spec

它可以通过安装: 捆绑:安装mvn:javax.jms / javax.jms-api / 2.0.1