我看過this和this,這與我的問題有些相關。但是我發現this文章說EJB可以打包在一個war文件中。如果是這種情況,爲什麼需要耳朵?一個例子的解釋將會得到高度評價。爲什麼要用耳朵代替戰爭?
回答
使用EAR或WAR取決於您要部署它的服務器,您的應用程序以及您的個人偏好。從Java EE6開始,您可以將您的EJB與其他servlet,jsps等一起打包到WAR文件中(最終只能在可與java ee 6兼容的服務器上部署的Web應用程序)。如果您將應用程序以舊的方式與ejbs打包在一個單獨的軟件包中並單獨進行打包,那麼如果您尚未在應用程序中使用Java ee6的其他功能,則可以使用java ee 5服務器,您可以將EJB的部署和WAR將業務層(EJB)和視圖(Servlet,JSP等)分開。
使用的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,但上面是什麼,我使用並似乎工作對我來說(我當然願意接受建議)。
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服務器機器以及後端的數據庫或傳統機器。以這種方式運行的三層應用程序通過在客戶端應用程序和後端存儲之間放置多線程應用程序服務器來擴展標準的雙層客戶端和服務器模型。
所以通常我們希望有2個或3個分離的各層:
-ear(Ë nterprise應用AR香蔥)
-ejb(Ë nterprise J ava B eans)
-war(W¯¯ EB AR韭菜)
,有時JPA(Ĵ AVA P ersistance 一個 PI)
我希望對您有所幫助,謝謝 。
- 1. 耳朵下的戰爭部署序列
- 2. 螞蟻戰爭和耳朵不生成
- 3. 如何從耳朵創造戰爭
- 4. 多戰爭耳
- 5. 用戰爭,耳朵和依賴罐子的Maven安裝程序
- 6. 用於測試的開源戰爭和耳朵文件
- 7. ejb 2.x耳朵還需要什麼?
- 8. Wildfly - Maven的插件只耳朵和戰爭
- 9. 將額外的戰爭包裝在耳朵中
- 10. 使用maven爲同一項目構建戰爭和耳朵文件
- 11. 爲什麼耳朵和戰爭在我的應用程序中的表現方式相同?
- 12. java的web應用程序架構,許多戰爭的耳朵裏面或一場戰爭與許多罐子
- 13. 相同的Spring bean實例,用於狂野地部署耳朵和戰爭
- 14. Maven的耳朵/戰爭的問題,「部署在保存」不工作
- 15. 如何在戰爭或耳朵外部配置屬性或數據源
- 16. 什麼是長耳朵上的蛇?
- 17. 戰爭與內耳之間的溝通
- 18. 耳寬單點登錄與戰爭Exlusion
- 19. 爲什麼我無法在Glassfish上部署我的耳朵
- 20. 爲什麼這個耳朵找不到他的依賴?
- 21. 爲什麼在部署耳朵時maven clean會失敗?
- 22. Maven耳朵問題
- 23. 爲什麼要用spyOn代替jasmine.createSpy?
- 24. 爲什麼要用芹菜代替RabbitMQ?
- 25. Maven戰爭:限制戰爭
- 26. 從多個應用程序服務器的戰爭/耳朵外部訪問屬性文件
- 27. 在戰爭級別初始化,戰爭的「主要」
- 28. Maven的耳朵 - boundleFileName版本號爲
- 29. 配置一隻耳朵在JBoss的另一隻耳朵上調用遠程ejb3
- 30. Wso2 5.3:認證endpoint戰爭和其他戰爭的源代碼