2011-10-21 51 views

回答

7

使用EAR或WAR取決於您要部署它的服務器,您的應用程序以及您的個人偏好。從Java EE6開始,您可以將您的EJB與其他servlet,jsps等一起打包到WAR文件中(最終只能在可與java ee 6兼容的服務器上部署的Web應用程序)。如果您將應用程序以舊的方式與ejbs打包在一個單獨的軟件包中並單獨進行打包,那麼如果您尚未在應用程序中使用Java ee6的其他功能,則可以使用java ee 5服務器,您可以將EJB的部署和WAR將業務層(EJB)和視圖(Servlet,JSP等)分開。

8

使用的EAR帶來業務(通常是無狀態EJB豆提供後端/ DB相關的服務,可以在原則上由非web客戶端使用)和前端(XHTML完全分離文件,JSF支持豆等)。

我通常遵循下面的慣例,對於給定的項目,說 「富」:

  • 富-ejb.jar有EJB豆
  • 富-client.jar中定義在EJB豆的接口( '客戶 '可能是用詞不當,' 富-if.jar '或' 富-api.jar中' 可能是更好的名稱)
  • FOO-war.war擁有網絡資源

大廈富-war.war只需要富-client.jar中

大廈富-ejb.jar只需要foo-client.jar

在EAR的結構是:

foo.ear 
| 
|-- foo-war.war 
| 
|-- foo-ejb.jar 
| 
\-- lib 
     |---- foo-client.jar 
     | 
     \---- (other common jars) 

有可能的方式有一個類似的完全分離,當你的代碼部署爲WAR,但上面是什麼,我使用並似乎工作對我來說(我當然願意接受建議)。

1

Java EE平臺爲企業應用程序使用分佈式多層應用程序模型。根據功能將應用程序邏輯分成組件,構成Java EE應用程序的應用程序組件安裝在各種機器上,具體取決於應用程序組件所屬的多層Java EE環境中的層。

下圖中的圖像顯示了兩個多層Java EE應用程序,分爲以下列表中介紹的層。此映像中顯示的Java EE應用程序部件在Java EE組件中提供。

  • 客戶端組件運行在客戶端機器上。

  • Web層組件在Java EE服務器上運行。

  • 業務層組件在Java EE服務器上運行。

  • 企業信息系統(EIS)-ier軟件運行在EIS
    服務器上。

雖然Java EE應用程序可以包括在圖1-1所示的所有層的,Java EE的多層應用程序通常被認爲是三層應用,因爲它們被分佈在三個位置:客戶機,則Java EE服務器機器以及後端的數據庫或傳統機器。以這種方式運行的三層應用程序通過在客戶端應用程序和後端存儲之間放置多線程應用程序服務器來擴展標準的雙層客戶端和服務器模型。

Multitiered Applications

所以通常我們希望有2個或3個分離的各層:

-ear(Ë nterprise應用AR香蔥)

-ejb(Ë nterprise J ava B eans)

-war(W¯¯ EB AR韭菜)

,有時JPA(Ĵ AVA P ersistance 一個 PI)

我希望對您有所幫助,謝謝 。

相關問題