Tomcat无法处理的Java EE方案

时间:2011-06-14 17:39:37

标签: tomcat java-ee jboss glassfish java-ee-6

Tomcat仅实现Java Enterprise Edition体系结构的 Web容器。相反,例如, GlassFish实现了完整的Java EE堆栈。这个has been discussed在stackoverflow上很多。

但是,对于像我这样的Java EE初学者来说很难想象Tomcat无法做到什么。你能举个简短的例子吗?

3 个答案:

答案 0 :(得分:9)

来自Apache tomcat documentation

  

tomcat是EJB服务器吗?我可以将EJB与tomcat一起使用吗?

     

Tomcat不是EJB服务器。 Tomcat不是完整的J2EE服务器。 Tomcat是一个Servlet容器。 Tomcat确实支持Servlet所需的J2EE规范部分,例如JNDI功能的子集。此外,您可以连接到远程J2EE服务器,或运行嵌入在完整J2EE服务器中的tomcat。

这意味着一些差异......

  • Tomcat只能处理WAR,而不能处理EAR
  • Tomcat不支持任何类型的EJB(如会话Bean,MDB,定时器等)。
  • Tomcat没有JPA支持
  • Tomcat具有有限的JNDI功能(不确定此处的详细信息)

可以在J2EE conatiner中使用Tomcat作为Web conatiner。

Tomcat在资源和文件系统足迹方面的重量要轻得多。

如果您需要J2EE功能,我的建议是尽管复杂性和资源需求,但是使用Glassfish(与Tomcat相比,Glassfish与Weblogic和JBoss相比非常容易使用)。如果没有,坚持使用tomcat,它将为您保持简单快捷。无论哪种方式,以后切换项目包装并交换容器并不困难。

答案 1 :(得分:6)

Java EE中有大量技术/功能。其中一些可作为Tomcat下载的一部分提供,其他可以添加到基于Tomcat的环境中,有些则无法添加到Tomcat环境中。

将EJB jar部署到Tomcat上:否。

调用EJB容器中运行的EJB的远程方法:是。

将RAR部署到Tomcat:否。

将EAR部署到Tomcat上:否。

将应用程序客户端jar部署到Tomcat上:否。

拼凑一种托管Java Web Startable应用程序的方法,该应用程序调用EJB容器中运行的EJB的远程方法:是的

使用JSF作为应用程序的框架:是的,但您需要在应用程序中打包实现或将其安装到服务器上。

创建一个程序,利用JSR-88来管理战争文件到Tomcat的部署:不......不是这是一个巨大的损失。

使用JSR-77 MEJB来管理您的Tomcat服务器:不......另一个不是很大的损失。

创建提供SOAP Web服务的Web应用程序:是的......但您需要将工具和库作为单独下载的一部分,并自行将它们与您的工作流,应用程序和服务器运行时集成。

创建使用JPA的Web应用程序:是的......但是您需要将工具和库作为单独下载的一部分,并将它们与您的工作流程,应用程序和服务器运行时自行集成。

创建使用CDI的网络应用程序:是的......但是您需要将这些工具和库作为单独下载的一部分,并将它们与您的工作流程,应用程序和服务器运行时自行集成。

答案 2 :(得分:0)

EJB - 无状态会话Bean,有状态会话Bean 消息驱动的bean EJB计时器 JPA(EJB3.0)

这是一个非常基本的清单。 Tomcat没有更多功能。

相关问题