2010-03-25 66 views
5

由於EJB 3我們擁有可嵌入的EJB容器,因此可以在沒有應用程序服務器的情況下使用JPA實現,還可以使用Weld進行上下文和依賴項注入等。由於在許多系統上只有Tomcat可用,我想知道,如果Java EE可以在沒有應用程序服務器的情況下使用,但可以使用像Tomcat這樣的Servlet容器。沒有應用程序服務器的Java EE

設置Java環境我需要做些什麼?你看到什麼缺點?

+0

但是用Web容器? – 2010-03-25 15:52:25

+0

是的,基於Servlet容器。我已經添加了這個。 – deamon 2010-03-25 16:25:30

+0

另請參閱此問題,[除了EAR和EJB,我從Java EE應用程序服務器上得到什麼東西,我沒有像Tomcat那樣在servlet容器中獲得?](http://stackoverflow.com/a/9199893/190816 ) – 2012-06-13 22:17:59

回答

1

您通常需要某些類型的容器,即使該容器不提供與Java EE相關的服務。畢竟,您確實需要一個長壽命的JVM進程來託管正在執行的代碼。 Tomcat和Jetty將很好地完成這項工作,除了基本的servlet服務外,還提供一些相關的附加功能,如連接池。

2

如果我理解的很好,您想在servlet容器中使用EJB3/JPA。

不僅有JPA的單機實現,但也嵌入 EJB3容器,如OpenEJB或是Glassfish embeddable container。所以沒有什麼能夠阻止你從Servlet容器啓動這樣一個可嵌入的容器來使用EJB3。 (注意:我不知道關於事務的所有細節,在一個完整的應用程序服務器中,你有JTA和一個分佈式事務管理器,在Tomcat等Servlet容器中沒有。 JPA與JTA和普通的JDBC一起工作,但我不知道如果沒有JTA,一個可嵌入的容器是如何工作的。不過,我猜這樣做是可行的,因爲這樣的可嵌入容器也用於單元測試,我猜測沒有JTA分佈交易經理)。

另一種方法是使用Spring。 Spring和EJB3確實變得非常相似。您可以在Servlet容器中啓動Spring DI容器,並從與EJB3(聲明性事務等)相同的工具中獲益。看到這篇文章Spring vs. EJB3.

所有這些技術已變得非常模塊化,特別是對於Java EE配置文件。你可以使用Sevlet,EJB3,JMS,JPA,甚至JTA獨立於另一個。你也可以創建一個環境,讓你選擇你喜歡的環境,無論是使用Spring還是使用Java EE。問題是,它何時停止有意義,而是使用應用程序。服務器提供一切可用並易於管理。我認爲Servlet/EJB3/JPA是極限,如果還需要更多的應用程序。服務器。

5

請注意,Tomcat是一個應用程序服務器。也就是說,在十月份,我們發佈了Apache TomEE這是Tomcat,添加了缺失的JavaEE部件,然後使用Oracle的官方TCK對Java EE 6進行了認證。

該堆棧從原來簡稱爲「OpenEJB/Tomcat」的演變而來,這是一個有用的堆棧,其名稱很糟:)由於「EJB」部分,通常會被忽略,同時它還交付了事務,JMS,WebServices還有更多Tomcat。這個新名字要好得多,現在它正式獲得JBoss或GlassFish的認證。我們對它的未來感到非常興奮。

-1

多年前由我引入的J2EE沒有應用程序服務器(來自Atomikos的Guy Pardon),這篇開創性文章是:http://www.onjava.com/pub/a/onjava/2006/02/08/j2ee-without-application-server.html--當時關注JMS和JDBC。

一般來說,由於Spring和Hibernate的原因,安裝很容易。實際上,在做了一個Java EE項目並面對與應用程序服務器和EJB相關的XML地獄之後,我受到了啓發。沒有應用服務器,事情突然變得更加簡單和可測試。

如果您需要安裝Tomcat,那麼配置起來可能會更麻煩一些,但最近Atomikos在http://www.atomikos.com處引入了即裝即用的Tomcat集成,作爲其商業產品的一部分。

HTH

+1

「在做了一個Java EE項目並面對與應用程序服務器和EJB相關的XML地獄之後,我受到了啓發 - 」這不是真的。可以這麼說,J2EE是「不贊成的」,這個問題提到了Java EE,而不是J2EE。從Java EE 5開始,接近0的配置。現在我們有Java EE 6和Java EE 7,在大多數情況下需要配置0。測試也是可能的和簡單的。看看http://arquillian.org/ – zmirc 2014-09-07 14:20:36

相關問題