我试图了解成熟的应用程序服务器(例如Weblogic,JBoss等)和Servlet容器(Tomcat,Jetty等)之间的区别。
它们有何不同以及何时使用?
谢谢,
我试图了解成熟的应用程序服务器(例如Weblogic,JBoss等)和Servlet容器(Tomcat,Jetty等)之间的区别。
它们有何不同以及何时使用?
谢谢,
Answers:
Servlet容器仅支持Servlet API(包括JSP,JSTL)。
应用程序服务器支持整个JavaEE-EJB,JMS,CDI,JTA,Servlet API(包括JSP,JSTL)等。
可以在servlet容器上运行大多数JavaEE技术,但是您必须安装特定技术的独立实现。
广义地说,servlet容器或多或少地将其自身限制为J2EE Servlet规范的实现。另外,它的重点是运行时环境,而不是提供其他工具。
相比之下,成熟的应用程序服务器将实现整个J2EE堆栈。加上所有企业工具和集成可能性。应用程序服务器通常具有高级管理界面,它支持群集和其他主要用于高端系统开发的功能。
对于初学者来说,最好使用一个简单的servlet容器,因为那里的学习曲线不太陡峭。
编辑
@Apache Fan:这取决于您所处情况的细节,例如现有系统和未来计划。我认为通用流程图方法在这里不适用。
平台选择通常是通过权衡特定要求和正在考虑的系统的第一手资料来完成的。
但是,该问题并未提供有关评估标准的任何线索。它应该是开源的吗?是否需要全天候的供应商支持?系统应与什么样的企业环境集成?许可费是一个问题吗?有必备的技术或工具吗?等等。
不了解以上内容,几乎是在黑暗中拍摄。
基本上,在Java EE上下文中的应用程序服务器是安装在服务器上的软件,它实现一个Java EE规范(例如Java EE 7)。这意味着此类软件(应用程序服务器)必须能够运行Java EE应用程序。
Java EE定义了4个域,即所谓的容器:
两个容器是应用程序服务器的一部分(EJB和Web容器),另外两个是客户端计算机的一部分。
JBoss和Weblogic是应用程序服务器,Tomcat和Jetty是Web容器。这就是JBoss和Weblogic可以处理比Web容器更多的技术的原因。应用服务器可以管理EJB。
Servlet容器不适用于合格的Tomcat和Jetty,因为它的限制更为严格。Tomcat不仅可以执行Servlet,还可以执行JSP和JSF。