web-dev-qa-db-fra.com

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

J'ai une application Web Spring que j'essaie de déployer sur Tomcat 7. J'ai obtenu l'erreur suivante au démarrage de Tomcat 7:

Causé par:

Java.lang.ClassNotFoundException: javax.jms.JMSContext

En effet, Tomcat n'a pas pu trouver javaee-api-7.0.jar qui est présent dans mon application WEB-INF/lib dossier. Cependant, si je le copie dans Tomcat/lib, l'erreur est corrigée et Tomcat peut charger la classe.

Mais je ne veux pas copier de pots supplémentaires dans Tomcat/lib. Quelqu'un peut-il aider ici afin que Tomcat puisse trouver le pot ci-dessus dans la bibliothèque de l'application. Suis-je absent des entrées du gestionnaire de chemin de classe? Je n'en ai pas ajouté explicitement.

10
Saurabh

J'étais également confronté au même problème lorsque je suis passé du printemps 3.0 au printemps 5.0 lors de l'utilisation de Tomcat-7 pour déployer mon application. J'ai ajouté la dépendance maven ci-dessous dans le fichier pom.xml et cela a été résolu.

<dependency>
    <groupId>javax.jms</groupId>
    <artifactId>javax.jms-api</artifactId>
    <version>2.0.1</version>
</dependency>

La cause première que j'ai trouvée est la classe serCredentialsConnectionFactoryAdapter fournie par spring-jms-5.0.2.RELEASE.jar utilisait la classe JMSContext en interne. Cette classe n'était pas disponible dans jms-1.1.jar que j'utilisais avec spring-jms-3.2.4.jar.

J'ai donc remplacé jms-1.1.jar par javax.jms-api-2.0.1.jar

Je vous suggère d'ajouter/mettre à niveau votre pot jms comme mentionné ci-dessus en fonction de votre version de printemps. J'espère que cela fonctionne!

25
sapan prajapati

J'ai eu le même problème dans un environnement Apache karaf 4.2.7 sur JDK 11.0.2, dans mon cas, l'exception s'affiche

Causé par: Java.lang.ClassNotFoundException: javax.jms.JMSContext not found par org.Apache.geronimo.specs.geronimo-jms_1.1_spec

Cela fonctionne en installant: bundle: install mvn: javax.jms/javax.jms-api/2.0.1

0
blacktiago