关于Java EE部署风格,哪个更好?

时间:2014-05-06 21:54:31

标签: java java-ee ejb

我有一个项目,b / s架构。和EJB。

所以,我可以将它部署在两个包中:war和ejb-jar。

而且,我可以在一个包中部署它:一个EAR。

将这两个包部署到一只耳朵的优点是什么?

2 个答案:

答案 0 :(得分:3)

对我来说,下面的引文(取自第34页和#34;工作中的JBoss")解释得非常好:

 An EAR is like a carton of eggs—it keeps everything organized. While the carton doesn’t
 add any direct value to your omelet, it makes getting the eggs home from the store so
 easy that you wouldn’t think about transporting eggs any other way.
 Each egg in your EAR carton is a specific piece of the J2EE puzzle (WAR, EJB, JAR).
按照@DavidWallace的建议

编辑,在下面找到一个精确的答案......

没有"优势" EAR。

PRO :您可以将需要部署的内容部署到单个存档中 CON :如果您包含特定于供应商的部署描述符(为了便于部署),您可能需要重新打包EAR(如果要将其部署到来自其他供应商的应用程序服务器中)。 /> 最后,如果您使用EAR或单独的模块,它只是组装/包装的问题。独立于此,不需要额外的编码。

答案 1 :(得分:0)

在这里讨论我的2美分。如果模块之间存在依赖关系(例如,war组件正在调用EJB),我会投票支持单耳部署,因为:

  • 更容易管理(单个安装/卸载,启动/停止)并且更合乎逻辑(如果您只停止ejb-jar,那么您的Web模块无论如何都不会工作。
  • 可以通过ear / lib文件夹中的util jar共享一些类,而不是在每个模块中复制或创建外部共享库
  • 可以使用本地接口和@EJB引用的自动绑定

如果出现以下两个单独的模块会更好:

  • ejb-jar由许多独立应用程序(Web模块)共享(一种共享,服务层)
  • 您希望在不影响ejb模块的情况下更新Web模块。
相关问题