我开始研究Enterprise Java,而我所关注的书提到它将使用JBoss。Netbeans随附Glassfish。我过去曾经使用过Tomcat。
这三个程序有什么区别?
我开始研究Enterprise Java,而我所关注的书提到它将使用JBoss。Netbeans随附Glassfish。我过去曾经使用过Tomcat。
这三个程序有什么区别?
Answers:
Tomcat只是一个servlet容器,即,它仅实现servlet和JSP规范。Glassfish和JBoss是完整的Java EE服务器(包括EJB,JMS等),其中Glassfish是最新Java EE 6堆栈的参考实现,但是JBoss在2010年还没有完全支持它。
Tomcat仅仅是HTTP服务器和Java Servlet容器。JBoss和GlassFish是成熟的Java EE应用程序服务器,包括EJB容器和该堆栈的所有其他功能。另一方面,Tomcat的内存占用空间较小(约60-70 MB),而那些Java EE服务器的重量仅为数百兆。Tomcat在简单的Web应用程序或使用不需要完整Java EE服务器的诸如Spring之类的框架的应用程序中非常流行。可以说,Tomcat服务器的管理更容易,因为活动部件更少。
但是,对于确实需要完整的Java EE堆栈的应用程序(或者至少可以很容易地将其固定在Tomcat上的其他部分)... JBoss和GlassFish是最受欢迎的两种开源产品(第三个是Apache Geronimo) ,在其上构建IBM WebSphere的免费版本)。JBoss具有更大,更深入的用户社区,以及更成熟的代码库。但是,JBoss在实施当前Java EE规范方面远远落后于GlassFish。此外,对于那些偏爱基于GUI的管理系统的人来说... GlassFish的管理控制台非常漂亮,而JBoss中的大多数管理都是通过命令行和文本编辑器完成的。GlassFish直接来自Sun / Oracle,具有所有优势。JBoss不受Sun / Oracle的控制,它具有THAT可以提供的所有优点。
您应该将GlassFish用于Java EE企业应用程序。要考虑的一些事情:
一个网络服务器方式:处理HTTP请求(通常来自浏览器)。
甲Servlet容器(例如Tomcat的)手段:它可以处理的servlet&JSP。
一个应用服务器(如GlassFish的)方式:*它可以管理Java EE应用程序(通常都的servlet / JSP和EJB)。
Tomcat-由Apache社区运行-开源,有两种形式:
没有商业支持(仅社区支持)
JBoss-由RedHat运行这是对JavaEE的全栈支持,并且是经过认证的Java EE容器。这包括将Tomcat内部作为Web容器。这也有两种味道:
Glassfish-由Oracle运行这也是经过完全堆栈认证的Java EE容器。它有自己的Web容器(不是Tomcat)。它来自Oracle本身,因此所有新规范都将首先通过Glassfish测试和实现。因此,它始终会支持最新规范。我不知道它的支持模型。
jboss和glassfish包括一个servlet容器(例如tomcat),但是两个应用程序服务器(jboss和glassfish)也提供了一个bean容器(我想还有其他一些东西)
JBoss和Glassfish基本上是完整的Java EE应用服务器,而Tomcat只是一个Servlet容器。就Tomcat和Jetty而言,JBoss,Glassfish以及WebSphere,WebLogic等之间的主要区别在于完整的应用程序服务器提供的功能。当拥有全栈Java EE应用服务器时,您可以受益于所选供应商的所有实现,并且可以受益于EJB,JTA,CDI(JAVA EE 6 +),JPA,JSF,JSP / Servlet等等。另一方面,使用Tomcat只能从JSP / Servlet中受益。但是,对于诸如Spring和Guice之类的高级框架而言,使用全栈应用服务器的许多主要优势都可以减轻,并且假设Spring Ecosystem中有一个框架是男子气概的,
阅读这些答案时,使用Tomcat似乎有些气disc。但是,最不能提及的是,您可以使用tomcat获得相同或几乎相同的用例,但这需要您添加所需的库(通过Maven或使用的任何包含系统)。
我一直在使用JPA和EJB来运行tomcat,它的配置工作量很小。