使用EAR与WAR相比的好处?

时间:2015-02-20 17:44:37

标签: java java-ee war wildfly ear

我们正在Wildfly 8上部署我们的JavaEE 7应用程序。之前,我们已将所有企业应用程序(WAR,多个EJB JAR文件)打包为EAR。但是,JavaEE现在允许您将EJB打包在WAR文件中(或作为WAR的WEB-INF / lib中的JAR),我们想知道部署EAR是否有任何好处,而不是使用WAR打包。

EAR是否提供WAR不具备的功能?它肯定会降低使用WAR的封装复杂性。部署方面有什么不同吗? EJB命名?什么?

2 个答案:

答案 0 :(得分:4)

  • 易于部署(只有一个包而不是多个包)。
  • 某个服务器(例如Weblogic,但不是wildfly)允许整个EAR的共享会话。
  • 通常,EAR提供了更多用AS配置的选项。
  • 特殊文件夹(APP-INF),可让您定义配置文件application.xml

如果您的应用程序只包含多个WAR,那么您可能会发现维护多个部署并不是一件大事。但是,请考虑使用WAR,EJB,JMS等的应用程序。在EAR中管理所有这些组件之间的交互将会容易得多。

您可能希望阅读Java EE教程的packaging application部分。

答案 1 :(得分:0)

部署EAR的设置非常艰苦(特别是在Weblogic下)。部署WAR更简单。作为EAR的部署有两个好处:

  1. 您可以在一个文件中聚合多个未链接的应用程序(一个篮子中的全蛋)。
  2. 您可以借助瘦小的战争技术减少此文件的大小。
  3. 您的devops只能部署一个应用程序而不是几个应用程序。 不需要链接恢复。
  4. 您可以在\ out ear模块之间设置良好的构建障碍。
  5. 还有很多其他人。

    换句话说,在大多数情况下,单战模式仅用于测试和培训目的。