我刚刚开始阅读EJB。
即使我冒险进入它,我也会根据我所听到的内容提出一些问题。
答案 0 :(得分:26)
1.使用ejb的应用程序是否必须部署为EAR?
没有。
EJB模块被组装成一个JAR,我们称之为myapp-ejb.jar作为命名约定。
它包含EJB代码以及EJB 2.x中名为ejb-jar.xml的部署描述符文件。在EJB 3.0中,代码本身包含服务器理解部署所需的注释,因此部署描述符是可选的。部署描述符/注释涵盖了EJB部署所需的基本内容,如JNDI,DataSource查找等。
多个EJB模块和其他Web模块(war)的集合组成了一个 EAR 。正如@Isaac指出的那样,EAR不必包含任何WAR文件。 EAR文件的唯一条件是包含至少一个任何类型的J2EE模块。
EAR需要META-INF/application.xml
,其中列出了EAR中存在的所有EJB jar和战争。因此,当您拥有多个EJB模块(通常是这种情况)时,您会选择EAR,因此通常部署的是EAR。
此文件的示例如下所示,取自http://download.oracle.com/docs/cd/B32110_01/web.1013/b28221/undejdev003.htm。这是一篇很好的文章供你阅读。
<application>
<display-name>master-application</display-name>
<module>
<ejb>ejb1.jar</ejb>
</module>
<module>
<ejb>ejb2.jar</ejb>
</module>
<module>
<java>appclient.jar</java>
</module>
<module>
<web>
<web-uri>clientweb.war</web-uri>
<context-root>webapp</context-root>
</web>
</module>
<module>
<ejb>ejb3.jar</ejb>
</module>
2.可以像其他java一样部署包含EJB的应用程序 使用ECLIPSE和不使用ECLIPSE的Web项目 使用ANT
是的,一旦组装了EAR / JAR,它就可以部署到服务器中(如果你愿意,可以通过Eclipse)。
Ant是一个构建工具,它与EJB代码的实际部署无关。它用于编译和组装JAR - 也可以从Eclipse完成。
此处is a tutorial which does just that。
进一步阅读