web-dev-qa-db-fra.com

ClassNotFoundException lors de l'utilisation des bibliothèques utilisateur dans le chemin de génération Eclipse

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

J'ai ajouté quelques fichiers JAR tiers au projet à partir des bibliothèques utilisateur (je n'utilise pas la gestion maven ou auto dependecies). Dans le JSP, je fais référence à une classe à partir du fichier JAR du projet, je peux le compiler sans problème, mais lorsque je déploie sur Tomcat, le JSP lève ClassNotFoundException. De toute évidence, Tomcat ne peut pas trouver les fichiers JAR dans les paramètres de ma bibliothèque. J'ai essayé de créer une configuration d'identification pour Tomcat Server et j'ai défini le chemin de classe pour qu'il corresponde aux paramètres de chemin de classe du projet, mais j'obtiens toujours le même problème de classe introuvable.

Je pourrais contourner le problème en copiant manuellement tous les fichiers JAR du projet dans le répertoire WEB-INF/lib afin que la webapp 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.

Suis-je en train de manquer quelque chose?

39
user646584

Dans les propriétés du projet, accédez à Deployment Assembly. Ajoutez-y également les entrées de buildpath que vous avez ajoutées manuellement en tant que bibliothèques utilisateur. Ça va finir dans /WEB-INF/lib de la GUERRE déployée.

enter image description here

96
BalusC

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

Eclipse devrait vous offrir la possibilité de générer un fichier WAR qui inclut toutes les dépendances: je n'ai pas utilisé les outils Web depuis longtemps, mais d'une manière ou d'une autre, toutes les dépendances doivent être dans WEB-INF/lib ou le chargeur de classe a gagné '' t être en mesure de les trouver.

3
Femi