处理Java - 在大多数情况下你喜欢的选项 - 引用impl。某些技术或其他技术,由任何其他供应商提供?
一些例子 - 有Glassfish服务器,它基本上是Java EE的官方参考实现。 但是,我真的很少看到人们使用它。 Jboss,一些免费的Apache项目(如Apache ActiveMQ for JMS),WebLogic,WebSphere ......
有人有自己的规则(除了纯粹的成本:)),哪个更受欢迎?
我确实在这里看到了两个相反的观点:
1)RI正在更快地获得新功能和新版本的规范。
2)三维聚会供应商解决方案通常更加“完成”并且面向终端程序员,就像包含的任何其他可用功能/实用程序一样(不属于规范)。
答案 0 :(得分:1)
更多要点:
3)与其他工具的集成通常更适合第三方(例如apache http server和tomcat servlet容器)4)RI包含所有功能,第三方通常只是广泛使用的功能。该软件不太复杂,有时更方便,性能更好。
5)RI处于领先地位。对于生产服务器而言,当不需要最新功能时需要更老的实现(大多数“Java EE”应用程序在Tomcat 5.5 - 2.4 servlet容器上工作 - 我beleave)
更新:对于Java EE 6和即将到来的7,图片会发生变化。还有完全标准的开源实现(比如TomEE for Java EE6)和glassfish似乎为Java EE 7提供了一个可用的RI,这是早期采用者唯一的。
答案 1 :(得分:1)
这里没有关于“参考实施”与其他实施的“规则” - 您可以获得所需的要求/偏好/金钱,并将其与每个可用选项的功能/成本进行比较。
很长一段时间,Tomcat 是 servlet规范RI。很长一段时间,EJB RI都是一个笑话 - 没有人真正使用它。 J2EE整体上没有“参考实现”。
大多数人使用其他服务器的原因是因为很长一段时间Weblogic和Websphere都是唯一的(现实的)实现,因此以J2EE开头的项目/人员会更加熟悉它们。 JBoss是第一个成功的开源J2EE应用服务器 - 所以喜欢开源的人(或者只是想要一个免费的应用服务器)非常受限于这个选项 - 再次 - 这些人会更喜欢他们所知道的。
但是,目前GlassFish与其他开源/商业Java EE应用服务器相当。它使用Tomcat作为它的servlet引擎 - 并且非常模块化,因此你可以拿出你不需要的部分。
影响这一点的另一件事是开发人员从“重量级”J2EE规范迁移到“轻量级”开源解决方案,如Hibernate和Spring(一旦可用),并且只运行在servlet容器(通常是Tomcat)中一个成熟的应用服务器。