2010-09-07 25 views
1

我試圖部署包含EJB應用程序到的WebLogic 9.2服務器的耳朵。Weblogic的EJB deployement:班在耳內罐子不可訪問

這耳朵使用maven(本身使用耳ant任務)創建的。 Maven的產生以下結構:

myApp.ear 
- META-INF 
    - application 
    - MANIFEST.MF 
- dependency-1.jar 
- dependency-2.jar 
- ... 
- dependency-n.jar 
- myEjb.jar 

的清單包含看起來不錯(所有依賴JAR列)

當我嘗試部署耳朵,我收到了NoClassDefFoundError的異常的類路徑部分。

如果我把我所有的罐子在我的域的lib目錄,耳朵被成功部署。

如果我把我在一個名爲APP-INF/lib目錄(weblogic的標準)目錄中的所有罐子,耳朵已經成功部署了。

myApp.ear 
- META-INF 
    - application 
    - MANIFEST.MF 
- APP-INF 
    - lib 
    - dependency-1.jar 
    - dependency-2.jar 
    - ... 
    - dependency-n.jar 
- myEjb.jar 

在同一個項目中,我有別人的耳朵,不使用是完全工作的APP-INF/lib目錄。

是否有人有weblogic的爲什麼不能夠部署我的耳朵的想法?


經過一番調查後,我發現問題來源:它是myEjb.jar模塊的清單類路徑。參見接受的回覆中的評論。

非常感謝。

回答

2

的依賴罐子的EAR內的標準方法是把它們放在APP-INF/lib中的文檔

http://download.oracle.com/docs/cd/E13222_01/wls/docs81/programming/environment.html#1099434

我在你的第一個EAR懷疑問題上所提供的是在實際類路徑條目在您的MANIFEST.MF

看到http://download.oracle.com/docs/cd/E12840_01/wls/docs103/programming/classloading.html#wp1065667

Class-Path清單

的Class-Path清單條目指 到其他檔案相對於這些條目 定義

的 當前檔案是否有任何子目錄或相對路徑不正確的?

+0

謝謝JoseK。我已經瞭解到,APP-INF/lib的耳朵是weblogic標準。但是我的構建系統沒有這個目錄就會產生耳朵。製作的清單也很好看。而最奇怪的事實是用同樣的工具建立的其他耳朵工作正常。 – Guillaume 2010-09-08 07:45:35

+0

@Guillaume:我想知道是否有任何依賴jar包依賴於另一個捆綁的依賴 - 因此引發問題? – JoseK 2010-09-08 08:03:52

+0

我發現了這個問題:它是ejb.jar模塊上的Manifest Class-Path問題,而不是耳朵的META-INF/MANIFEST類路徑中的問題。非常感謝你的幫助。 – Guillaume 2010-09-08 13:53:59