通常我们使用WebLogic或JBoss来部署我们的应用程序。我知道在使用像Spring这样的开源解决方案时,你可以开发你的应用程序并在像Jetty这样的简单servlet容器上运行它。所以问题就是为什么要打扰app服务器呢?
答案 0 :(得分:4)
在大多数情况下,YAGNI。
答案 1 :(得分:3)
在企业环境中使用WebLogic或WebSphere没有人被解雇。对于大企业和经理而言,不仅技术方面很重要。这些应用程序服务器提供功能齐全的管理控制台,即使是没有经验的管理员也可以轻松使用。此外,更容易找到支持服务。使用开源组件的公司需要投资有经验的开发人员来设置所有内容并进行维护。应用程序服务器广泛用于公司(例如银行),其业务与软件无关。对他们而言,从单一供应商那里购买所有东西(软件许可证,安装/配置,支持服务)更有意义。
答案 2 :(得分:2)
如果你要问,你买不起。
说真的,成熟的应用服务器有更多的功能,你必须决定它们是否值得你,比如Tomcat或Jetty。我不认为这是一个尝试给出所有原因的合适位置,但这里有一个:应用程序服务器可以更容易在事务中包装功能和服务。给出了更多理由here。
答案 3 :(得分:1)
WebLogic和JBoss的集群,故障转移和会话同步功能仍然使它们在大型数据中心中变得有价值。
JBoss当然使用Tomcat作为他们的网络前端,所以它不是/或。
我见过人们将OpenEJB和ActiveMQ添加到Tomcat并获得Java EE应用服务器的所有功能。这条线很模糊。
Spring DM服务器是在Tomcat上构建的。看看它是否可以开始从Java EE应用服务器人员中获取思想和市场份额将会很有趣。
我喜欢Spring - 这是我首选的框架 - 但我可以告诉你,安慰一些人知道Java EE是由多个应用服务器供应商实现的标准。如果您不使用特定于供应商的扩展,理论上您的代码可以从WebSphere迁移到WebLogic而不需要更改。一些像这样的大型IT商店。他们回避春天,因为它不是标准。这是Rod Johnson和他的团队的心血结晶。如果你认为自己不喜欢自己的东西,那么你无处可去。
正在开发一种新的Java IoC / DI标准。罗德约翰逊和鲍勃李正在努力。也许这会开始平息一些人的恐惧。
答案 4 :(得分:0)
有些人喜欢EJB支持(Java EE规范)“以防万一”
答案 5 :(得分:0)
有几个原因,其中大多数可能适用于某一特定需求,也可能不适用。
1)支持。许多企业喜欢与开发服务器的供应商签订支持合同。使用开源解决方案,您几乎可以“独立完成”。
2)完整的Java EE / EJB支持。虽然我自己并不觉得这个特别有用,但这些功能被商业应用广泛使用。如果你需要它们,那真的别无选择。如果你不需要它们,它们就是浪费。
3)良好的管理控制台。 Tomcat有一个管理控制台,允许您添加和删除应用程序。据我所知,这就是它的全部内容。 WebSphere具有(虽然不是非常简化),但您也可以更改连接池大小,数据源,线程池大小,更改日志记录配置(非常高的粒度),以及激活内存和JVM分析。大多数情况下没有重新启动App Server。据推测,聚类也相对容易设置。 tomcat也明显缺少安装.EAR文件的能力,如果你要安装多个相互关联的应用程序,那么管理它们真的很痛苦。
您也可以(至少)在tomcat中执行(3)大部分操作,但不能通过管理GUI执行。有些人喜欢有一个很好的GUI。
答案 6 :(得分:0)
应用程序服务器是架构解决方案。如果要考虑应用程序的不同可重用模块,则必须使用它。如果您不介意您的服务应该通过HTTP堆栈实现,那么EJB必须是您的默认选项。使用AS,您可以使用已经打包的解决方案来解决良好实践的架构方式。您可以使用开箱即用的队列,主题,jms等,这些都是Java EE标准。 但我认为你必须认为你在这个架构 buzz 中的所有应用程序能够判断AS的决定。