2011-08-10 41 views
35

我在IDE內運行Tomcat 7時使用了Eclipse 3.7(STS)。我創建了一個新的Dynamic Web項目,並將一個JSP文件添加到Web內容根文件夾。我可以運行Tomcat並從Eclipse中訪問JSP,而不會出現任何問題。在Eclipse構建路徑中使用用戶庫時發生ClassNotFoundException

我已經添加了幾個第三方JAR的用戶庫項目(我沒有使用maven或自動依賴管理)。在JSP中,我從項目的JAR文件中引用了一個類,我可以毫無問題地編譯這個類,但是當我在Tomcat上部署時,JSP將引發ClassNotFoundException。顯然,Tomcat無法從我的庫設置中找到JAR。我嘗試爲Tomcat服務器創建Run As配置,並將類路徑設置爲匹配項目的類路徑設置,但我仍然遇到了同樣的classnotfound問題。

我可以通過手動將所有項目JAR複製到WEB-INF/lib目錄來解決此問題,以便webapp可以找到所有依賴關係,但這很荒唐,我不認爲這是解決方案,因爲它是維護惡夢。

我錯過了什麼嗎?

回答

89

在項目屬性中,轉到部署程序集。在那裏添加構建路徑條目,以及您手動添加爲用戶庫的構建路徑條目。它將以部署的WAR的/WEB-INF/lib結束。

enter image description here

+6

LIFESAVER!這工作,我知道必須有一個簡單的方法,耶穌基督,現在我可以睡一覺,感謝一百萬! – user646584

+1

爲防萬一您使用的是較舊的eclipse,在版本3.4.2中,項目屬性中選項的名稱是'Java EE Module Dependencies' – Bizmarck

+0

@bizmark:這是正確的。另請參閱http://stackoverflow.com/questions/3511479/business-logic-layerin-servlet-and-jsp/3511933#3511933 – BalusC

2

您需要將jar文件複製到WEB-INF/lib文件夾:這是他們應該在的位置。

Eclipse應該爲您提供生成包含所有依賴關係的WAR文件的選項:我還沒有很好地使用Web Tools,但是一種或另一種方式,所有依賴關係必須位於WEB-INF/lib或類加載器將無法找到它們。

+0

我找不到在Eclipse STS動態Web項目的任何戰爭中的設置,但我知道你是在談論,因爲這是我使用Eclipse伽利略年後預期什麼。 – user646584

相關問題