Question

Je suis un nouveau venu sur Java EE, donc c'est peut-être une question factice.Mais je déploie un WAR et un JAR contenant des EJB sur un Glassfish 3.1.serveur.WAR a une référence à l'un des EJB dans le fichier JAR.Est-il obligatoire d'inclure l'EJB JAR dans le fichier WAR ? lib répertoire pour que cela fonctionne ?Étant donné que WAR et JAR fonctionneront sur le même serveur d'applications, j'espérais ne pas avoir à m'occuper de ces dépendances.Cependant, je reçois un java.lang.NoClassDefFoundError lorsque je déploie le WAR s'il n'inclut pas le JAR EJB (même si le JAR EJB est déjà déployé sur le serveur d'applications).

Était-ce utile?

La solution

L'une des pierres angulaires de Java EE est l'idée selon laquelle différents composants peuvent s'exécuter dans des conteneurs qui ne partagent pas d'espace de noms, même si les composants peuvent s'exécuter dans la même JVM.Si vous avez des modules qui doivent partager un espace de noms, ils doivent être regroupés dans un EAR (avant Java EE 6) ou combinés en un seul WAR (un cas particulier établi par Java EE 6 pour les applications Web qui doivent exploiter les EJB). .

Il s’agit d’un changement important par rapport à ce que « savent » les personnes familières avec le développement Java SE.Pour la plupart des programmes Java SE, le conteneur est le processus JVM.

Donc la réponse à votre question est : « Non.Vous n'avez pas besoin de placer le fichier jar EJB dans le répertoire lib du fichier WAR.Vous pouvez créer un fichier EAR contenant les DEUX archives."

Cela peut clarifier la situation pour vous...

 myEar.ear
   + myEJBs.jar
   + myWAR.war
   + lib
       + a-jar-that-has-classes-used-in-both-archives-above.jar

Autres conseils

Avez-vous essayé de regrouper les fichiers WAR et JAR dans un fichier EAR ?Le fichier EAR peut avoir un répertoire lib dans lequel vous pouvez placer les fichiers JAR à charger sur le chemin de classe FBO de l'application d'entreprise.

Cela devrait résoudre votre problème de chargeur de classe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top