2013-02-27 120 views
1

我有三個項目,我們稱它們爲RAD(Eclipse)中的A,B和C. A是一個簡單的Java項目,支持B和C都將使用的代碼。 B和C都是可以在WebSphere上運行的web應用程序。RAD項目參考/類未找到

我寫了B,其中包含A作爲構建路徑中的項目引用,並將它包含在部署程序集中作爲jar放入web-inf/lib中。這或多或少地完美。

C是一個已有的項目,其他人寫道我必須使用相同的代碼。我嘗試使用相同的技巧(我認爲),並且在編譯時發現A,但是當我發佈到測試環境類時未找到。當我輸出一個耳朵時,我發現C有一個代表A的jar,並且位於類似的位置。但是,C在jar的根目錄(在戰爭的旁邊)有一個lib目錄。 A.jar在戰爭之內的lib中。

我從來沒有在其他部署中看到過這個額外的lib文件夾,並且一直在淘洗這個設置並且沒有IDEA來自它。

所以我的問題是: 1)有誰知道什麼是生產該根lib文件夾 但更重要的是...... 2)任何想法,爲什麼我的課都找不到......我想這額外的lib以某種方式搞亂了它,但A.jar在C.war的web-inf/lib中。

回答

0

這被稱爲EAR的library-directory並且包含可以被所有模塊訪問的實用程序罐。它默認爲'lib',但可以更改。如果a.jar文件被兩場戰爭所需要

  • ,然後嘗試在lib文件夾 -

    你應該使用zip工具編輯EAR文件。它不應該包含所需的WAR

  • 否則中的任何代碼,編輯EAR文件,並把它拿出來解決lib文件夾
+0

哎呀,在寫我自己的之前沒有看到你的回覆。你實際上已經死了。我的問題是爲什麼戰爭的web-inf/lib行爲在這個EAR庫中不起作用。你知道這可能是爲什麼嗎? – user1187719 2013-02-27 15:27:14

+0

我不認爲整個WEB-INF/lib停止工作。它可能是特定的罐子。很高興我可能得到了一些幫助。 – 2013-02-27 15:29:49

+0

爲什麼特定的罐子會停止工作?我認爲EAR lib是在類路徑中首先搜索的,但如果這種行爲不能阻止戰爭的web-inf/lib被類似處理,爲什麼它會選擇一些不處理的jar?正如我所說,我已經解決了這個具體問題,但我很想了解哪裏出了問題。 – user1187719 2013-02-27 17:13:40

0

的。這是發生了什麼事。我不知道,一位同事實際上創建了一個二級庫目錄,因爲他打算在這個耳朵下部署第二場戰爭,並且想要一個共享庫的地方。

我還是不明白這下一部分。出於某種原因,這個lib目錄不僅僅添加到類路徑中,而且似乎取代了A.jar所在的web-inf/lib。由於他的項目還需要A.jar(最終),我很滿意將A.jar生成到該文件夾​​中。但是我確定想知道爲什麼在創建這個替代庫時web-inf/lib停止工作。