Dois-je emballer un haricot de session sans état dans un fichier war ou un fichier ear pour le déploiement ?
Réponses
Trop de publicités?Ni l'un ni l'autre. Les EJB appartiennent à des fichiers JAR standard (avec un META-INF/ejb-jar.xml). Afin d'utiliser les EJBs à partir d'un WAR, vous devez emballer ces deux archives dans un EAR.
Comme cela n'est pas vraiment pratique, il est possible, depuis EJB 3.1, d'empaqueter les EJB dans le WAR.
Les "Stateless Session Beans" (SLSB) sont emballés dans un EJB-JAR (qui est un fichier JAR ordinaire) comprenant ou non un descripteur de déploiement facultatif. Les EJB-JARs et les WARs sont assemblés dans un EAR pour le déploiement.
Voir cet article de Debu Panda et Rezza Rahmann (qui est en fait un extrait de l'excellent ouvrage EJB 3 en action ):
Avec EJB 3.1/Java EE 6, vous n'avez plus besoin de fichiers EAR, vous pouvez également placer vos session beans directement dans un fichier WAR (en tant que fichier .class séparé dans WEB-INF/classes, ou à l'intérieur d'un fichier JAR dans le répertoire WEB-INF/lib du fichier WAR). Voir par exemple http://java.sun.com/developer/technicalArticles/JavaEE/JavaEE6Overview_Part3.html#simpack