2011-04-30 88 views
1

我們從頭開始構建Web服務,從決定使用哪種Java EE技術開始。要使用哪些Java EE技術?

它看起來像Apache-cxf是一個很好的選擇作爲前端。爲了訪問數據庫,Hibernate看起來很不錯。那兩者之間的業務邏輯呢?應該使用EJB3嗎?

如果不使用EJB3,那麼Tomcat是否適合作爲App服務器?如果使用EJB3,Tomcat仍然很好嗎?或者全功能的Java EE服務器更好,例如GlassFishV3?

+0

不錯,不要投票結束。 :) 我需要幫助。 – sarahTheButterFly 2011-04-30 23:09:01

+0

你可能想嘗試接近它幾個範圍較窄的問題......這可能已經得到了回答。 – topchef 2011-05-01 01:41:31

回答

3

基本上,您正在問一個大多數Java開發人員在某個時候或某個職業生涯中做過的問題。我應該使用一個完整的應用程序服務器還是帶有一些開放源碼堆棧的更簡單的容器。 幾年前,我會建議你使用Tomcat(或Jetty),Spring以及任何你覺得舒適的開源堆棧。較短的週轉時間將彌補把所有東西放在一起所需的額外時間,您的解決方案將更加「輕量級」且簡單。今天,Java EE 6 Web Profile非常簡單輕便,GlassFish具有相當的部署和發佈時間,EJB 3.1遠非曾經的怪物(比如說EJB 2)。你只需要啓動你的應用服務器,幾乎所有的東西都已經爲你設置了(或許,與使用「自己裝配」弗蘭肯斯坦容器相比,可能有點額外的「服務層開銷」)。因此,這是個人品味的問題,您的應用程序可能不需要EJB(或Spring),或者它可能需要它(您可以隨Tomcat + Open EJB或EasyBeans一起作爲GlassFish的替代品)。 作爲一名經驗豐富的Java EE開發人員遷移到Java EE 6,我可以說我也在想什麼方法是最好的(請參閱Jetty 8 + EJB 3.1 + JTA + CDI + JPA 2 stack?)。 只是不給你一個空的答案,目前我傾向於使用GlassFish(正如我所說的,設置和週轉時間非常令人滿意,我認爲使用GlassFish集羣進行擴展比使用GlassFish更容易, Tomcat + Apache + Load Balance + MemCached/Terracota /其他)。但是,作爲個人意見,請採取這種方式(以及任何您收到的Tomcat 7或GlassFish的其他答案)。

3

使用EJB Lite配置文件的Glassfish v3.1是您想要的。它帶有JPA(基於Eclipselink),它帶有WebServices(通過Metro的JAX-WS),它帶有本地EJB會話bean(EJB-Lite概要文件的一部分)。這使您可以將EJB放入WAR中,從而簡化部署。這讓您在會話bean級別進行事務劃分,相當不錯。

這是整個堆棧,你不需要安裝任何東西,配置任何東西,從任何地方下載jar(當然,除了Glassfish)。這一切都建立它。

添加NetBeans IDE,您將獲得整個工具包,包括Glassfish。

+1

你想到Web Profile? – 2011-04-30 23:00:33

+0

1 +捆綁它包裝。 Netbeans也可以選擇安裝Tomcat。 – 2011-04-30 23:01:49

+0

@Thorbjorn(沒有挪威語鍵盤),什麼是Web Profile? – sarahTheButterFly 2011-04-30 23:05:10