2014-05-23 4 views
0

Je suis en train de construire une bibliothèque qui enveloppe un code client autour spymemcached. C'est ce qu'on appelle CacheClient. C'est un projet Java simple. J'ai mis le spymemcached.jar dans son dossier lib.projets Eclipse vs chemin de génération

Voici à quoi ça ressemble, vous pouvez également voir les paramètres du chemin de génération:

Bibliothèque: CacheClient Projet: cacheclient.jar

  • lib
    • spymemcached.jar

chemin de génération Java/Bibliothèques Tab: spymemcached.jar - CacheClient/lib/spymemcached.jar

Ce que je fais est que je suis la construction d'un projet web simple java qui utilise cette bibliothèque.

WebApp: ServiceWebApp Projet: servicewebapp.war

  • WebContent
    • WEB-INF
      • lib
        • VIDES

chemin de génération Java/Projets Onglet: CacheClient

Ainsi, le chemin de la construction de mon Webapp est mis à l'aide du projet CacheClient. J'ai copié le fichier cacheclient.jar dans le répertoire lib de tomcat et déployé le ServiceWebApp.

Quand je lance l'application Web, il échoue comme il est dit mon code CacheClient est à la recherche pour les classes spymemcached (ClassNotFoundException).

je pouvais résoudre ce problème en mettant spymemcached.jar dans le répertoire lib de tomcat, mais ce serait bien s'il y aura une autre solution.

Toute suggestion appréciée.

Merci,

Répondre

3

La façon la plus simple de faire la lib disponible dans votre application web serait de mettre le pot de lib dans votre répertoire WEB-INF/lib.

Si vous ne voulez pas le faire manuellement, vérifier ce lien sur la façon dont cela peut être automatisé: Adding 3rd party jars to WEB-INF/lib automatically using Eclipse/Tomcat

+0

OK, c'était la solution. Je mets le cacheclient.jar et aussi le spymemcached.jar dans le répertoire WEB-INF/lib de l'application Web. Cependant, le fichier spymemcached.jar se trouve également dans le répertoire lib de cacheclient.jar. Comme je peux le voir pour référencer une classe à partir d'un pot à l'intérieur d'une bibliothèque n'est pas supporté nativement, One-Jar ou tout autre emballage est nécessaire. –

1

Dans votre cas cacheclient.jar a une dépendance à l'égard spymemcached.jar. Mais quand votre cacheclient.jar est construit, il n'est pas empaqueté avec spymemcached.jar. Donc simplement copier cacheclient.jar dans le dossier tomcat/lib n'est pas suffisant. En premier lieu, il n'est pas recommandé de copier les fichiers jar dans le dossier tomcat lib. Ce que vous pouvez faire est de copier vos deux pots dans servicewebapp.war> WenContent> WEB-INF> lib qui devrait fonctionner.

Questions connexes