我开始研究企业Java,我接下来的书提到它将使用JBoss。Netbeans与Glassfish一起发货。我以前使用过Tomcat。
这三个程序有什么不同?
Tomcat只是一个servlet容器,也就是说,它只实现servlet和JSP规范。Glassfish和JBoss是完整的Java EE服务器(包括EJB、JMS等),Glassfish是最新Java EE 6堆栈的参考实现,但JBoss在2010年还没有完全支持它。
jboss和glassfish包括一个servlet容器(如tomcat),但是两个应用服务器(jboss和glassfish)也提供了一个bean容器(以及一些我想象的其他东西)。
Tomcat只是一个HTTP服务器和Java servlet容器。JBoss和GlassFish是成熟的Java EE应用服务器,包括EJB容器和该堆栈的所有其他特性。另一方面,Tomcat的内存占用较轻(~60-70 MB),而那些Java EE服务器的内存占用高达数百兆。对于简单的web应用程序,或者使用Spring等不需要完整Java EE服务器的框架的应用程序,Tomcat非常流行。Tomcat服务器的管理可以说更容易,因为移动的部分更少。
然而,对于那些确实需要完整的Java EE堆栈(或者至少需要更多可以轻松绑定到Tomcat的组件)的应用程序……JBoss和GlassFish是两个最流行的开源产品(第三个是Apache Geronimo,在此基础上构建了IBM WebSphere的免费版本)。JBoss拥有更大更深入的用户社区和更成熟的代码库。然而,在实现当前的Java EE规范方面,JBoss明显落后于GlassFish。另外,对于那些喜欢基于gui的管理系统的人来说……GlassFish的管理控制台非常灵活,而JBoss中的大多数管理都是通过命令行和文本编辑器完成的。GlassFish直接来自Sun/Oracle,具有所有可以提供的优势。JBoss并不在Sun/Oracle的控制之下,它拥有所有可以提供的优势。
JBoss和Tomcat都是Java servlet应用服务器,但JBoss的功能远不止这些。两者之间的实质区别是JBoss提供了完整的Java企业版(Java EE)堆栈,包括企业JavaBeans和许多其他技术,这些技术对于开发企业Java应用程序的开发人员非常有用。
Tomcat的限制要大得多。可以这样想,JBoss是一个包含servlet容器和web服务器的Java EE堆栈,而Tomcat在很大程度上是一个servlet容器和web服务器。
A web服务器意思是:处理HTTP请求(通常是从 浏览器)。< / em > < / p > A Servlet容器(例如Tomcat)表示:它可以处理 servlet,JSP。< / em > < / p > 一个应用程序服务器(例如GlassFish)意味着:*它可以管理 Java EE应用程序(通常包括servlet/JSP和ejb)
A Servlet容器(例如Tomcat)表示:它可以处理 servlet,JSP。< / em > < / p > 一个应用程序服务器(例如GlassFish)意味着:*它可以管理 Java EE应用程序(通常包括servlet/JSP和ejb)
一个应用程序服务器(例如GlassFish)意味着:*它可以管理 Java EE应用程序(通常包括servlet/JSP和ejb)
Tomcat -由Apache社区运行-开源,有两种风格:
没有商业支持(只有社区支持)
JBoss -由RedHat运行 这是对JavaEE的全栈支持,它是经过认证的JavaEE容器。 这在内部包括Tomcat作为web容器。 这也有两种风格:
Glassfish - Oracle运行 这也是一个全栈认证的Java EE容器。它有自己的web容器(不是Tomcat)。 这是由甲骨文自己决定的,所以所有的新规格都将首先用Glassfish进行测试和实现。所以,它总是支持最新的规范。我不知道它的支持模型
Apache tomcat只是一个serverlet容器,它不支持企业Java应用程序(JEE)。JBoss和Glassfish支持JEE应用程序,但Glassfish比JBoss服务器重得多:参考幻灯片
当您阅读这些答案时,使用Tomcat似乎有点令人沮丧。然而,大多数人没有提到的是,您可以使用tomcat获得相同或几乎相同的用例,但这需要您添加所需的库(通过Maven或您使用的任何包含系统)。
我一直在用非常小的配置工作运行tomcat和JPA、ejb。