2012-08-27 32 views
18

如果我可以選擇,我將JBoss 7用於使用JSF 2和CDI的Java EE 6項目。Tomcat 7上的CDI - 它有道理嗎?

但是有時候,客戶項目的環境或多或少都會被設置 - 所以在某些情況下,我們僅限於Tomcat(6或7)。

因此,我讀了一些關於在Tomcat中使用CDI(例如WELD)和JSF 2的文章,這些文章表明基本沒有問題。

不過,我的問題是 - 它有道理嗎?或者是一個servlet容器不適合這樣的架構?有沒有人有任何使用Tomcat + CDI的東西比一個演示項目更多的經驗?

在此先感謝!

+0

將是巨大的,如果你能更新你終於決定如何的問題... –

+1

@jangroth正如我所說的 - 我的決定是容易的,但如果最終決定對Tomcat的,我可以住在一起,並在我的戰爭中,只要沒有真正的攔截點,就可以使用Tomcat + CDI。 –

回答

13

很好的問題,首先是:)

部署企業應用程序的servlet引擎是例如主場景春天,所以它肯定是可能的。但是你會知道Spring是一個完整的API和配置文件生態系統,而不是幾個簡單的放在服務器上的JAR。

我在Tomcat 7上玩過相當多的焊接& JSF,並且效果很好。但是,HelloWorldOnTomcat.java與真實客戶的實際應用程序之間有很大的區別。我相信你知道這一點。

我想說,你將能夠在相對短的時間內編譯一個體面的設置。 CDI和JSF都不會有問題。 但是根據您的具體要求,您將不得不處理其他方面的問題,這些方面並不包括在開箱即用的Tomcat中。安全性,羣集,故障轉移,消息傳遞,異步性來提出一些擔憂(和評論中提到的交易)。

如果你(或多或少)精通這樣的需求,而且你即將開展的項目相當寬鬆,不應該控制下一次火星任務 - 我肯定會試一試。另一方面,如果你知道這樣的需求,我會尋找(a)在Java EE應用服務器上的設置,或者(b)在Tomcat上的另一個堆棧。

+5

我將添加到Tomcat + JSF和CDI未涵蓋的功能列表中,即事務管理。如果您的應用程序不是隻讀的,您可能需要事務處理,因此您需要使用外部框架(可以使用spring)或自行完成。由於JEE6容器至少和Tomcat一樣輕,試着推一下JEE6(TomEE可以是一個很好的起點;)) – Kazaag

4

Apache的Tomee看看:

Apache TomEE,發音爲 「湯米」,是一個全功能的Apache的Java EE 6的Web 檔案認證堆在那裏Tomcat是最高的狗。 Apache TomEE是由vanilla Apache Tomcat zip文件組裝而成的 。我們從Tomcat開始, 添加我們的罐子,然後將其餘的拉鍊拉起來。結果是Tomcat增加了EE 的功能 - TomEE。

+1

我從來沒有使用它,但聽說過這個項目。這確實是有道理的,但問題正如我在文章中所說的那樣,有時環境是在客戶站點設置的,所以安裝了Tomcat 7,我們所能做的就是部署WAR文件。 –

+1

在這種情況下,我認爲你應該自己將所有組件包裝到WAR文件中。使用Maven應該會有很大的幫助。我不記得是否需要調整容器(Tomcat)中的某些組件的配置。無論如何,看看Apache TomEE網站可以提供幫助,因爲他們實現了JEE堆棧在Apache Tomcat上的完整功能集成。 –