本文正在参加「Java主题月 – Java Debug笔记活动」,详情查看<活动链接>
提问:Tomcat
、JBoss
、Glassfish
之间有什么区别?
我正在学习企业级Java。我看的书里使用JBoss
作为服务器。Netbeans推荐使用Glassfish
。我曾经使用过Tomcat
这三个服务器软件有什么区别吗?
回答一
你应该使用GlassFish
作为javaee企业级应用。
下面是一些概念:
web服务器的概念:处理HTTP请求(通常来自浏览器)
Servlet容器的概念:它可以处理Servlet和Jsp
应用服务器(application server)的概念:它可以管理javaee应用程序(通常是servlet/jsp/ejb)
Tomcat:一个Apache的开源项目,有两个版本:
Tomcat - Web profile
– 只是一个轻量级的应用服务器,不支持Javaee的某些特性,如EJB、JMS等Tomcat EE
– 这是一个经过认证的Javaee容器,它支持所有Javaee技术
没有可用的商业支持(只有社区支持)
JBoss:由Redhat维护,它是一个对Javaee有完整堆栈支持并经过认证的Javaee容器。它也有两个版本:
社区版(AS)
– 只提供社区支持企业版(EAP)
– 你必须有一个许可证才能用它(它基于服务器上的核心数量)
Glassfish:由Orcale维护,这也是一个经过全栈认证的Javaee容器,它有自己的web容器。因为它来自于Oracle本身,所以所有新的规范都将首先使用Glassfish进行测试和实现,因此,它总是支持最新规范。
回答二
Tomcat
仅仅是一个HTTP服务器和Java Servlet容器。JBoss
和GlassFish
是成熟的javaee应用服务器。Tomcat
的内存占用更小(约60~70MB),而那些javaee服务器的重量有数百兆。Tomat
在简单的web应用上被普遍使用,或者是使用Spring等不需要完整javaee服务器的框架应用程序,Tomcat
服务器的管理非常简单,因为它的组件很少。
但是,对于需要完整javaee堆栈的应用程序,JBOSS
和GlassFish
是两个流行的开源项目。JBoss拥有更活跃的用户社区,以及更成熟的代码库。然而,JBoss在实现javaee规范方面明显落后于GlassFish。另外,对于那些喜欢基于GUI管理系统的人,GlassFish的管理控制台非常灵活,而JBoss中的大多数管理都是通过命令行和文本编辑器完成的。GlassFish直接来自Sun/Oracle,具有所有可以提供的优势。而JBoss不是由Sun/Oracle管理。
文章翻译自Stack Overflow:stackoverflow.com/questions/3…