什么时候适合使用的EAR和您的应用程序时,应在战争中?(When is it appropriate

2019-08-03 08:57发布

我们有许多Spring Web应用程序做出的WebLogic服务器上,是好奇,当战争也应当走在EAR时,他们应该只存在作为战争。 偶尔,战争将需要访问的通用逻辑的JAR文件,但我不明白为什么这会需要进入一个EAR时,他们可能只是被打包成战争。

从我的理解,如果几个战争是在EAR,你需要修改这些战争之一,你需要重新部署整个耳朵来更新服务器。 这将导致所有战争的反弹。 如果他们在EAR都没有,但是,我可以只升级一个WAR,这将是反弹的唯一的一个。

出了什么问题有100个不同的WAR文件独自站立和使用包装的JAR文件和共享库(使用的WebLogic)?

谢谢你的任何见解!

Answer 1:

如果你拥有的是WAR文件,那么EAR用途有限,只能作为你的战争中部署容器。 您可以通过这种方式共享的战争之间的JAR节省一点膨胀,但这本身并不是巨大的吸引力。

耳朵是必不可少的,但是,随着全的JavaEE / J2EE应用程序,它使用战争的EJB,JMS,JCA资源打交道时等,这些种类的应用程序的组件之间的交互和依赖也是千差万别容易在EAR管理。

但是,如果你正在使用的Weblogic全部是一场战争的容器,那么你不妨使用如Tomcat或Jetty香草servlet容器,所有你走出的Weblogic的功能用途。



Answer 2:

我同意几乎所有评论skaffman的(典型值)现货。

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

但是,如果你的Spring应用程序使用消息驱动的POJO我能看到你还是在WebLogic部署WAR文件采取JMS的优势。

如果你已经有了EJB或JCA的EAR可能是必要的,但我不会说,JMS任务的EAR。 我使用JMS和部署在WebLogic WAR文件,它的工作就好了。

如果你决定去与Tomcat和那里部署一个WAR,你仍能保持JMS功能,如果你使用ActiveMQ的。



Answer 3:

该参数封装多的WAR到EAR如果碰上的是我的最后一个雇主那样的情况,那就是你有一个共同的组由多个战争中使用库JAR都可以引人注目,和JAR的该集合的大小是相当大的。 在我们的特定情况下,3个WAR的与包装成每WAR共同的JAR总规模共计124MB。 通过在含有EAR定位JAR和配置每个WAR的类路径使用这些JAR文件,即包含在3场战争EAR的占用面积减小到40MB。 我认为这是一个令人信服的理由。



Answer 4:

拥有多个共享库,而不应是令人信服的理由去为一个EAR,作为一个JAR(或一组JAR文件)总是可以被部署为在其上可以,因此,被所有的战争共享weblogic的“库”。 ”不是个正确?



Answer 5:

没有什么其实是不对的,只需部署战争,开发商在获得任务的兴趣很快见了越好。 这意味着他们往往会采取技术债务,如果他们是在一个体面的球队,他们将清理债务。

然而,这提出了一个问题,当你将它添加到应用服务器避免耳朵的复杂性,并共用一个罐子,会发生什么? 许多在战争中唯一一支比较常见,被卸载各种应用程序的复杂应用程序服务器。 很简单,因为它是更容易实现,他们往往过度分配的调度。 我完全不责怪他们这一点,但是现在我们有一个新的问题。 一个标准的应用服务器无法使用,你必须做系统端自定义。 有效的Web应用程序到处流血系统。 谁维护应用程序服务器,现在还必须知道应用程序的具体细节......在企业环境中的人,这提出了一个非常明确的问题。

然后,开发者可以在制度中的责任,但他们仍然需要满足最后期限。 他们不可避免地流血遍布OS以及,突然开发商是唯一可能的管理员。 如果管理员不知道什么应用程序正在使用系统的一面,他们可以很造成大问题。 目前还不清楚这些线条总是结束在两个方向,未知的系统状态,和团队隔离指责。

难道他们必须使用EAR呢? 不,我是一个系统工程师,所以我总是说,他们可以部署像另一个商业应用自己的应用服务器。 内部的RPM,如果部署一个WAR是像其他支持的应用服务器,那么他们得到的WAR部署流水线。 如果没有,那么RPM尽在其中......一旦没有让球队于把自己的成本,那么的EAR成为一个伟大的想法。



文章来源: When is it appropriate to use an EAR and when should your apps be in WARs?