簡體   English   中英

沒有Application Server的Java EE

[英]Java EE without Application Server

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

我需要做什么才能建立Java環境? 你看到了什么缺點?

請注意,Tomcat是一個Application Server。 也就是說,在10月份我們發布了Apache TomEE ,它是添加了缺少的JavaEE部分的Tomcat,然后使用Oracle的官方TCK認證了Java EE 6。

堆棧從過去簡單地稱為“OpenEJB / Tomcat”發展而來,這是一個有用的堆棧,名稱不好:)由於“EJB”部分而常常被忽略,同時它還向Tomcat提供了Transactions,JMS,WebServices等等。 。 新名稱要好得多,現在它已經正式認證,如JBoss或GlassFish。 我們對它的未來感到非常興奮。

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

不僅有JPA的獨立實現,還有可嵌入的 EJB3容器,如OpenEJB或Glassfish 可嵌入容器 因此,沒有什么能阻止您從Servlet容器啟動這樣的可嵌入容器來使用EJB3。

(注意:我不知道有關事務的所有細節。在一個成熟的應用服務器中,你有JTA和分布式事務管理器。你沒有在像Tomcat這樣的Servlet容器中使用它.JPA適用於JTA和簡單的JDBC,但我不知道如果沒有JTA,嵌入式容器究竟是如何工作的。不過,我想這可行,因為這樣的可嵌入容器也用於單元測試,我猜沒有JTA分布式事務管理器。)

另一種方法是使用Spring。 Spring和EJB3確實變得非常相似。 您可以在Servlet容器中啟動Spring DI容器,並從與EJB3(聲明式事務等)相同的工具中獲得更多或更少的好處。 請參閱有關Spring vs. EJB3的這篇文章

所有這些技術都變得非常模塊化,尤其是Java EE配置文件。 您可以使用Sevlets,EJB3,JMS,JPA甚至JTA以某種方式彼此獨立。 您還可以使用Spring或Java EE創建一個可以選擇所需內容的環境。 問題是它什么時候停止有意義而是使用應用程序。 服務器,一切可用,易於管理。 我認為Servlet / EJB3 / JPA是限制,如果需要更多應用程序。 服務器。

您通常需要某種容器,即使該容器不提供與Java EE相關的服務。 畢竟,您需要一個長期存在的JVM進程來托管您正在執行的代碼。 Tomcat和Jetty可以很好地完成這項工作,除了基本的servlet服務之外,還提供了一些與連接池相關的有用附加功能。

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

一般來說,由於Spring和Hibernate,它很容易設置。 實際上,在做了Java EE項目並遇到與app服務器和EJB相關的XML地獄后,我受到啟發。 沒有應用服務器,事情突然變得更加簡單和可測試。

如果您需要Tomcat安裝,那么配置可能會有點麻煩,但最近Atomikos已經在http://www.atomikos.com上引入了開箱即用的Tomcat集成作為其商業產品的一部分。

HTH

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM