我剛開始閱讀EJB。有關EAR和WAR的EJB解釋
即使我冒險進入它,我有幾個問題基於我聽說過他們。
- 使用EJB的應用程序總是必須作爲EAR部署嗎?
- 是否可以像使用ECLIPSE而不使用ANT的其他其他Java Web項目一樣部署包含EJB的應用程序?
我剛開始閱讀EJB。有關EAR和WAR的EJB解釋
即使我冒險進入它,我有幾個問題基於我聽說過他們。
1.使用ejb的應用程序總是必須部署爲EAR嗎?
號
EJB模塊組裝成一個JAR,讓我們把它叫做MYAPP,ejb.jar的命名約定。
這包含EJB代碼以及EJB 2.x中名爲ejb-jar.xml的部署描述符文件。在EJB 3.0中,代碼本身包含服務器爲了部署需要理解的註釋,因此部署描述符是可選的。部署描述符/註釋包含EJB部署所需的基本內容,如JNDI,DataSource查找等。
多個EJB模塊和其他Web模塊(war)的集合構成了一個EAR。正如@Isaac指出的那樣,EAR不必在其中包含任何WAR文件。 EAR文件的唯一條件是至少包含一個任何類型的J2EE模塊。
EAR需要一個META-INF/application.xml
,其中列出了EAR中存在的所有EJB容器和戰爭。所以當你有多個EJB模塊時,你會選擇EAR,因爲通常的部署是EAR。
該文件的示例如下所示,取自http://download.oracle.com/docs/cd/B32110_01/web.1013/b28221/undejdev003.htm。這是一篇很好的文章供你閱讀。
<application>
<display-name>master-application</display-name>
<module>
<ejb>ejb1.jar</ejb>
</module>
<module>
<ejb>ejb2.jar</ejb>
</module>
<module>
<java>appclient.jar</java>
</module>
<module>
<web>
<web-uri>clientweb.war</web-uri>
<context-root>webapp</context-root>
</web>
</module>
<module>
<ejb>ejb3.jar</ejb>
</module>
2.可應用含有EJB的部署,就像其他其他Java 網絡項目使用Eclipse和不 使用ANT
是,一旦EAR/JAR組裝它可以部署到服務器(如果你願意,可以通過Eclipse)。
Ant是一個構建工具,與EJB代碼的實際部署無關。它用於編譯和組裝JAR,這也可以從Eclipse完成。
這裏is a tutorial which does just that。
進一步閱讀
很好的解釋。儘管有小的改正:EAR並沒有在其中包含任何WAR文件。EAR文件的唯一條件是至少包含一個任何類型的J2EE模塊。 – Isaac 2010-10-20 16:32:18
@Isaac:謝謝,請澄清,在答案 – JoseK 2010-10-21 10:52:22
necrobumping,我可以將庫包含到ejb jar嗎? – carpinchosaurio 2018-03-08 12:11:17