Tomcat僅實現Java Enterprise Edition體系結構的Web容器。相反,例如GlassFish實現了一個完整的Java EE堆棧。這個has been discussed在stackoverflow很多。Tomcat無法處理的Java EE方案
但是,對於像我這樣的Java EE初學者來說,很難想象Tomcat無法完成什麼。你能舉一些簡短的例子嗎?
Tomcat僅實現Java Enterprise Edition體系結構的Web容器。相反,例如GlassFish實現了一個完整的Java EE堆棧。這個has been discussed在stackoverflow很多。Tomcat無法處理的Java EE方案
但是,對於像我這樣的Java EE初學者來說,很難想象Tomcat無法完成什麼。你能舉一些簡短的例子嗎?
是tomcat的EJB服務器?我可以在tomcat上使用EJB嗎?
Tomcat不是EJB服務器。 Tomcat不是一個完整的J2EE服務器。 Tomcat是一個Servlet容器。 Tomcat確實支持Servlet所需的J2EE規範的那些部分,例如JNDI功能的一個子集。此外,您可以連接到遠程J2EE服務器,或者在完整的J2EE服務器中運行嵌入式tomcat。
有些意味的是差異...
Tomcat可以在J2EE容器內部用作Web容器。
Tomcat的資源和文件系統足跡重量要輕得多。
如果您需要J2EE功能,我的建議是咬牙切齒,儘管複雜性和資源需求仍然使用Glassfish(與tomcat相比,Glassfish相對於其他Weblogic和JBoss相當容易使用)。如果沒有,堅持使用tomcat,它會讓事情變得簡單而快速。無論哪種方式,稍後切換您的項目包裝並換出容器並不困難。
的EJB - 無狀態會話Bean,有狀態會話Bean 消息驅動Bean EJB計時器 JPA(EJB3.0)
這是一個非常基本的列表。 Tomcat沒有更多的功能。
Java EE中包含大量的技術/功能。其中一些可作爲Tomcat下載的一部分,另一些可以添加到基於Tomcat的環境中,有些則不能添加到Tomcat環境中。
部署的EJB JAR到Tomcat的:第
調用EJB容器中運行的EJB遠程方法:是的。
部署到RAR的Tomcat:號
一個EAR部署到Tomcat的:否
部署應用程序客戶端JAR到Tomcat的:第
湊齊的方式來承載一個Java Web應用程序可啓動調用EJB容器中的EJB運行的遠程方法:是
使用JSF作爲您的應用程序框架:是的,但您需要在應用程序中打包實施或將其安裝到您的服務器上。
創建一個利用JSR-88管理戰爭文件在Tomcat上的部署的程序:不......這不是一個巨大的損失。
使用JSR-77 MEJB來管理您的Tomcat服務器:不...另一個不是巨大的損失。
創建Web應用程序,提供SOAP Web服務:是的......但你需要獲得工具和庫作爲一個單獨下載的一部分,並與您的工作流程,應用程序和服務器運行自己整合。
創建使用JPA的Web應用程序:是......但您需要將工具和庫作爲單獨下載的一部分,並將它們與您的工作流程,應用程序和服務器運行時自己整合。
創建使用CDI Web應用程序:是的......但是你需要的工具和庫作爲一個單獨下載的一部分,並與您的工作流程,應用程序和服務器運行自己整合。
我想了解爲什麼tomcat不是一個EE容器,但我有點困惑。 @Jesse Webb你在回答中說,tomcat沒有JPA支持。這是否意味着JPA不能用於tomcat?因爲我確信在我的一個在tomcat 6中部署的Web應用程序中,我已經成功實現並使用了JPA2.0。謝謝 – NikosDim 2014-10-27 23:29:31
@NikosDim Tomcat沒有內置JPA支持。 [在Tomcat中使用EclipseLink進行JPA的這個例子](http://wiki.eclipse.org/EclipseLink/Examples/JPA/Tomcat_Web_Tutorial)很好地總結了這一點:「Tomcat 6不是設計的Java EE 5兼容服務器,因爲它是一個servlet容器,但是servlet容器能夠運行在應用程序管理的Java SE EJB 3.0/JPA的應用程序(獨立的)模式「。基本上,你可以得到它的工作,但它涉及到一個自定義的部署,你可以將Java EE庫放到你的Tomcat服務器上。 – 2014-10-28 03:22:23