繁体   English   中英

关于EAR与WAR的EJB解释

[英]EJB explanation regarding EAR vs WAR

我刚刚开始阅读EJB。

即使我冒险进入它,我也会根据我所听到的内容提出一些问题。

  1. 是否始终必须将使用EJB的应用程序部署为EAR?
  2. 包含EJB的应用程序是否可以像使用ECLIPSE和不使用ANT的其他其他Java Web项目一样进行部署?

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和war。 因此,当您拥有多个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.可以像使用ECLIPSE和不使用ANT的其他Java Web项目一样部署包含EJB的应用程序

是的,一旦组装了EAR / JAR,就可以将其部署到服务器中(如果您愿意,可以通过Eclipse)。

Ant是一种构建工具,与EJB代码的实际部署无关。 它用于编译和组装JAR - 也可以从Eclipse完成。

是一个教程就是这样做的

进一步阅读

包装应用

打包EJB3应用程序

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM