2015-02-17 50 views
0

我有一個Java EE Web項目部署和運行良好(PROJECT1)..的NoClassDefFoundError爲Tomcat的servlet

我創建另一個項目(項目2)和Web部署大會增加PROJECT1 ..

我能訪問PROJECT1沒有編譯時錯誤定義的所有類..

在運行的項目,它提供了對PROJECT1類的運行時錯誤一樣的NoClassDefFoundError ..

難道我做錯了什麼?

+0

這有可能嗎?一個.war文件包含libs下的另一個.war文件...它會正確引用它嗎?因爲它沒有做? – Awesome 2015-02-18 08:07:24

回答

1

看起來project1在project2類路徑中不存在。嘗試將project1編譯爲jar(我現在假設它是一個.war),並將jar放在classpath中。

War文件不是庫文件,因爲jars是。他們具有將webapp打包在一個可分發文件中的特定目的。你的IDE顯然足夠聰明,可以進入戰爭,但這不是一個規則。

IMO最好能做的就是創建另一個項目,把所有的共享類打包成jar(比如project3.jar)。然後,將project3作爲project1project2的依賴關係,並且您將擁有一個清晰易讀的結構。

+0

不知道你的意思是通過更新類路徑..我已經把路徑「WEB-INF/lib/project1.war」中的project1放在Web部署程序集中。 – Awesome 2015-02-18 08:05:39

+1

請參閱我的更新。 – ptrk 2015-02-18 08:28:22

+0

確定一些進展..它可以引用project3中的共享類。但是包含在project3中的罐子不可用? – Awesome 2015-02-18 10:20:09