2013-02-15 169 views
1

我有以下結構的EAR:EAR/lib文件夾中的jar可以用嗎?

myapp.ear 
...META-INF 
......application.xml 
...lib 
......common.jar 
......specialBeanlib.jar 
...myejb.jar 
...mywar1.war 
...mywar2.war 

正如你可以看到common.jar和specialBeanlib.jar是在EAR lib文件夾中。

myejb.jar包含服務類。
mywar1.war包含user-gui。
mywar2.war包含admin-gui。

ejb和war模塊是從單獨的maven項目構建的,並在application.xml文件中引用。文件specialBeanlib.jar被引用爲,它提供了兩個Web項目中的依賴項以及ejb項目中的正常依賴項,因此它被存儲在EAR lib文件夾中。它明確地不應該是一個自己的ejb模塊。

問題:我可以有任何豆類例如@ApplicationScoped Bean,文件號爲specialBeanlib.jar,因此可以從mywar1.war訪問mywar2.war通過@Inject

回答

0

它應該沒問題。在編譯期間,因爲您在Maven中提供了作爲依賴項的specialBeanlib.jar,所以在編譯mywar1和mywar2模塊期間,它應該出現在classpath中。在運行期間,由於speicalBeanlib.jar位於war \ classloader的父類classloader中的ear \ lib文件夾中,所以bean類也應該可以正常加載。

+0

看起來你是對的。我從頭開始創建一個項目,它可以工作。我會接受您的回答,但會提供一些「官方」信息,例如描述此功能的規範的一部分將會很有用。 – unwichtich 2013-02-18 15:33:40

相關問題