我应该将无状态会话bean打包到war文件还是ear文件中进行部署?
(说明:无状态会话bean通常作为web应用程序的一部分,因此应该将其打包到war文件中进行部署。)
(说明:无状态会话bean通常作为web应用程序的一部分,因此应该将其打包到war文件中进行部署。)
既不是这个也不是那个。EJB应该放在标准的JAR文件中(带有META-INF/ejb-jar.xml)。为了从WAR中使用EJB,您需要将这两个存档文件打包到EAR中。
由于这并不是很方便,因此自EJB 3.1以来,可以将EJB打包在WAR中。
使用 EJB 3.1 / Java EE 6,您不再需要 EAR 文件,也可以直接将会话 Bean 放在 WAR 文件中(作为 WEB-INF/classes 中的单独 .class 文件,或在 WAR 文件的 WEB-INF/lib 目录中的 JAR 文件内部)。请参见例如http://java.sun.com/developer/technicalArticles/JavaEE/JavaEE6Overview_Part3.html#simpack。
无状态会话Bean(SLSB)打包在EJB-JAR中(这是一个常规的JAR文件),包括或不包括可选的部署描述符。 EJB-JAR和WAR将组装在EAR中进行部署。
请参阅Debu Panda和Rezza Rahmann的本文(实际上是优秀的的摘录):