20 votes

Inclusion d'un jar externe dans le chemin de classe de Tomcat

Dans Tomcat, je veux utiliser un jar à l'intérieur d'une application web. Le fichier jar existera en dehors du répertoire Tomcat.

Pour inclure le fichier jar dans le classpath de Tomcat, j'ai modifié le fichier TomcatHome/conf/catalina.properties pour inclure le chemin absolu de mon fichier jar comme suit,

shared.loader=D:\jaa\MyJarFile.jar

conformément à la suggestion donnée dans le lien,

http://www.mulesoft.com/tomcat-classpath

Mais l'erreur se produit,

java.lang.NoClassDefFoundError

J'ai également essayé ,

shared.loader=D:\jaa\*.jar

shared.loader=file:\\D:\jaa\MyJarFile.jar

Aucun d'entre eux ne semble fonctionner :(

Si j'essaie de placer le jar dans tomcat/lib, cela semble fonctionner. Mais je ne suis pas autorisé à le faire.

Merci de m'aider à résoudre ce problème car j'ai mis en place la semaine suivante

14voto

Sathesh Points 467

J'ai trouvé moi-même comment ajouter le classpath pour tomcat. Au lieu d'éditer catalina.properties, il suffit de créer un "setenv.sh" dans le répertoire Tomcat Bin avec le classpath,

Exemple,

CLASSPATH=D:\jaa\MyJarFile.jar

Je viens de vérifier le fichier catalina.sh dans Tomcat/bin et ces variables classpath seront définies lors de la définition de bootstrap comme classpath.

1voto

J'utilisais IntelliJ et j'ai tout essayé :

  1. Utilisation CtrlAltShiftS (Paramètres du projet) et en ajoutant une dépendance de mysql-connector.jar . Cela n'a pas fonctionné. (La seule chose qui a fonctionné est cette complétion de code à l'intérieur IntelliJ fonctionnait bien.
  2. Ajout mysql-connector.jar dans le dossier apache-home/lib/. Cela n'a pas fonctionné.
  3. Y compris mysql-connector.jar à partir de Maven dans IntelliJ. Cela n'a pas fonctionné.

Ce qui a fonctionné pour moi :

Inclure le mysql-connector.jar dans le fichier PROJECT/web/WEB-INF/lib dossier.

Il n'est pas nécessaire de l'ajouter en tant que dépendance. Il suffit de le compiler et il fonctionnera parfaitement.

0voto

Cookie Monster Points 2595

Je me retrouve à copier des JAR supplémentaires, qui devraient être disponibles pour tous les contextes et devraient donc aller dans le Root loader, dans le répertoire suivant :

 C:\Program Files\Apache Software Foundation\Tomcat 9.0\lib

Mais cela n'est possible que si vous avez accès à ce répertoire, ce qui n'est pas forcément le cas de tous les FAI. Au moins, vous pouvez le faire chez vous.

Au revoir

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X