何时适合使用 EAR,您的应用何时应位于 WAR 中?

2022-09-03 04:00:37

我们在WebLogic服务器上有许多Spring Web应用程序,并且对WAR何时应该进入EAR以及何时应该作为WAR存在感到好奇。有时,WAR将需要访问通用逻辑JAR,但我不明白为什么当它们可以打包到VAR中时,它们需要进入EAR。

据我所知,如果一个 EAR 中存在多个 WAR,并且您需要修改其中一个 WAR,则需要重新部署整个 EAR 以更新服务器。这将导致所有 WAR 反弹。但是,如果它们不在EAR中,我可以只更新一个WAR,它将是唯一一个反弹的。

将 100 个不同的 WAR 文件单独放置并使用打包的 JAR 和共享库(使用 WebLogic)有什么问题?

感谢您的任何见解!


答案 1

如果您拥有的只是 WAR 文件,那么 EAR 的用处有限,只能用作 WAR 的部署容器。您可以通过以这种方式在VAR之间共享JAR来节省一些膨胀,但这本身并不是非常引人注目。

但是,在处理完整的 JavaEE/J2EE 应用程序时,EAR 是必不可少的,这些应用程序使用 WAR、EJB、JMS、JCA 资源等。这些类型的应用程序组件之间的交互和依赖关系在 EAR 中管理起来要容易得多。

但是,如果您使用Weblogic的只是一个WAR容器,那么您也可以使用像Tomcat或Jetty这样的vanilla servlet容器,用于Weblogic的所有功能用途。


答案 2

我同意几乎所有斯卡夫曼(通常)的评论。

如果你使用没有EJB的Spring,当然,你可以坚持使用WAR文件。不需要我可以看到的 EAR。

但是,如果您的Spring应用程序使用消息驱动的POJO,我可以看到您仍然会在WebLogic上部署WAR文件以利用JMS。

如果你有EJB或JCA,EAR可能是必要的,但我不会说JMS强制要求EAR。我已经使用过JMS并在WebLogic上部署了一个WAR文件,它工作得很好。

如果您决定使用Tomcat并在那里部署WAR,如果您使用ActiveMQ,您仍然可以保留JMS功能。


推荐