ClassNotFoundException lors de l’utilisation de bibliothèques d’utilisateurs dans le chemin de génération Eclipse

J’utilise Eclipse 3.7 (STS) avec Tomcat 7 s’exécutant à l’intérieur de l’EDI. J’ai créé un nouveau projet Web dynamic et ajouté un seul fichier JSP au dossier racine de contenu Web. Je peux exécuter Tomcat et accéder à JSP depuis Eclipse sans aucun problème.

J’ai ajouté quelques JAR tiers au projet à partir des bibliothèques utilisateur (je n’utilise pas la gestion de maven ou des dépendances automatiques). Dans le JSP je référence une classe du fichier JAR du projet, je peux le comstackr sans problème, mais lorsque je déploie sur Tomcat, le JSP lève ClassNotFoundException. De toute évidence, Tomcat ne peut pas trouver les JAR de mes parameters de bibliothèque. J’ai essayé de créer une configuration Run As pour Tomcat Server et j’ai défini le classpath pour qu’il corresponde aux parameters de classpath du projet, mais j’obtiens toujours le même problème de classe.

Je pouvais contourner le problème en copiant manuellement tous les JAR du projet dans le répertoire WEB-INF / lib pour que l’application Web puisse trouver toutes les dépendances, mais c’est absurde et je ne m’attends pas à ce que ce soit la solution car c’est un cauchemar de maintenance.

Est-ce que je manque quelque chose?

Dans les propriétés du projet, accédez à Assemblée de déploiement . Ajoutez les entrées de chemin de construction ainsi que celles que vous avez ajoutées manuellement en tant que bibliothèques d’utilisateurs. Il se retrouvera dans /WEB-INF/lib du fichier WAR déployé.

entrer la description de l'image ici

Vous devrez copier les fichiers jar dans le dossier WEB-INF / lib: c’est là qu’ils sont censés être.

Eclipse devrait vous offrir la possibilité de générer un fichier WAR contenant toutes les dépendances: je n’ai pas utilisé les outils Web depuis un certain temps, mais toutes les dépendances doivent être dans WEB-INF / lib ou la classe loader gagnée t être capable de les trouver.