有关EAR与WAR的EJB解释

问题描述

1.使用ejb的应用程序是否必须始终部署为EAR?

没有。

EJB模块被组装成一个JAR,可以将其命名为myapp-ejb.jar。

它包含EJB代码以及EJB 2.x中称为ejb-jar.xml的部署描述符文件。在EJB 3.0中,代码本身包含服务器理解部署所需的批注,因此部署描述符是可选的。部署描述符/注释涵盖了EJB部署所需的基本内容,例如JNDI,DataSource查找等。

多个EJB模块和其他Web模块(war)的集合一起构成了 。正如@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应用程序

解决方法

我刚刚开始阅读EJB。

即使我冒险尝试,基于我对它们的了解,我也会有一些疑问。

  1. 使用EJB的应用程序是否总是必须部署为EAR?
  2. 是否可以像其他其他Java Web项目一样使用ECLIPSE而不使用ANT来部署包含EJB的应用程序?

猜你在找的技术问答相关文章

如何检查配对的蓝牙设备是打印机还是扫描仪(Android)
是否允许实体正文进行HTTP DELETE请求?
如何将ZipInputStream转换为InputStream?
java.util.logging Java 8中的变量
PowerMockito.doReturn返回null
Java中的RESTful调用
Swing / Java:如何正确使用getText和setText字符串
特殊字符和重音字符
Android Studio中的ndk.dir错误
错误“找不到主类”