Conditionnement POT de fichier dans le fichier WAR
J'ai une série de dépendante des projets Java. Je voudrais de les compresser en un seul fichier JAR pour être utilisé dans mon fichier WAR. Ces projets dépendent d'un grand nombre de bibliothèques externes et des projets tels que log4j, apache commons etc.
Je sélectionne tous les projets dans Eclipse et exporter un fichier JAR, puis copiez le fichier JAR dans mon /WEB-INF/lib du dossier de ma GUERRE, puis déployer mon application. J'ai les problèmes suivants:
- ClassNotFoundException. L'application web ne peut pas trouver les bibliothèques emballés dans mon fichier JAR. J'ai résolu ce problème en déplaçant toutes les bibliothèques dépendantes dans /WEB-INF/lib du dossier et de l'ajout de la classe de chemin entrées dans le MANIFESTE.MF du BOCAL, d'un fond douloureux processus.
- Les classes dans le fichier JAR ne peut pas trouver les fichiers de propriétés emballés à l'intérieur du BOCAL. Comment puis-je résoudre ce problème?
Est-il une solution pour ces problèmes? Merci.
Pourquoi voulez-vous de toutes vos dépendances dans un seul bocal? Quel est le problème avec tout simplement en mettant tous dans
Je préfère garder mon fichier JAR autonome et distribuable, plutôt que d'exploser inutile dépendances dans mon WEB-INF/lib
Ils ne sont pas inutiles, sont-ils? Si vous souhaitez un bocal, puis ne pas utiliser des bibliothèques externes.
Juste un mot: maven. Mais vous semblez faire face à la mauvaise fin du cheval. Une application web est simplement représenté par un fichier WAR et pas un fichier JAR. Mettre vos dépendances dans WEB-INF/lib n'en est pas plus ou moins distribuable.
pas si le fichier jar Un tente d'accéder à des classes dans le fichier jar B, et A et B sont dans la guerre, j'ai le même problème!
WEB-INF/lib
? (Aussi: vous n'avez pas besoin de Chemin de Classe entrées, la webapp a automatiquement accès à tous les fichiers jar dans WEB-INF/lib
).Je préfère garder mon fichier JAR autonome et distribuable, plutôt que d'exploser inutile dépendances dans mon WEB-INF/lib
Ils ne sont pas inutiles, sont-ils? Si vous souhaitez un bocal, puis ne pas utiliser des bibliothèques externes.
Juste un mot: maven. Mais vous semblez faire face à la mauvaise fin du cheval. Une application web est simplement représenté par un fichier WAR et pas un fichier JAR. Mettre vos dépendances dans WEB-INF/lib n'en est pas plus ou moins distribuable.
pas si le fichier jar Un tente d'accéder à des classes dans le fichier jar B, et A et B sont dans la guerre, j'ai le même problème!
OriginalL'auteur Justin Wong | 2011-08-01
Vous devez vous connecter pour publier un commentaire.
Je vous conseille d'utiliser quelque chose qui n'automatique de gestion de la dépendance pour vous. Si vous avez déjà ant en place pour votre script de construction, le lierre est une excellente solution. Si vous ne disposez pas d'un script de génération en place, maven peut être intéressant de regarder dans.
De gestion de la dépendance automatiquement tire dans les dépendances transitives pour les dépendances (pots) que vous utilisez directement.
OriginalL'auteur Dave
La norme de la solution à ce problème est de mettre tous les fichiers jar vous dépendez dans le WEB-INF/lib du dossier. Ce que vous êtes à la recherche d'une solution non standard.
De ceux-ci, il y a un certain nombre. La modification du classpath dans le fichier manifeste est un. Vous pouvez aussi les mettre dans le conteneur partagé répertoire de la bibliothèque ou les mettre n'importe où et de les ajouter à la classe global du conteneur processus. Tout pourrait fonctionner, mais aucun n'est considéré comme la meilleure pratique.
OriginalL'auteur pap
J'ai eu le même problème avec le déploiement. Pour le résoudre j'ai juste modifié les propriétés du projet:
Si fait correctement, cela va automatiquement ajouter l'externe .bibliothèque jar pour votre .la guerre de fichier.
OriginalL'auteur Achraf Mounir