2014-05-23 156 views
0

我正在構建一個包含spymemcached客戶端的代碼的庫。這被稱爲CacheClient。這是一個簡單的Java項目。我把spymemcached.jar放到它的lib文件夾中。Eclipse項目vs構建路徑

這裏是如何的樣子,還可以看到構建路徑設置:

庫:CacheClient項目:cacheclient.jar

  • LIB
    • spymemcached.jar

Java構建路徑/庫標籤: spymemcached.jar - CacheClient/lib目錄/ spymemcached.jar

我在做什麼是我建立這是使用這個庫一個簡單的Java Web項目。

Web應用程序:ServiceWebApp項目:servicewebapp.war

  • 的WebContent
    • WEB-INF
      • LIB
        • EMPTY

Java構建路徑/ Projects標籤:CacheClient

所以,我的webapp的構建路徑設置爲使用CacheClient項目。我將cacheclient.jar複製到tomcat的lib目錄中並部署了ServiceWebApp。

當我運行web應用程序時,它失敗,因爲它說我的CacheClient代碼正在尋找spymemcached類(ClassNotFoundException)。

我可以通過將spymemcached.jar放入tomcat的lib目錄來解決這個問題,但如果還有其他的解決方案,它會很棒。

任何建議讚賞。

感謝,

回答

3

使得LIB提供您的web應用程序將是把的lib的jar到WEB-INF/lib目錄的最簡單的方法。

如果你不想做手工,檢查有關這可怎麼自動此鏈接:Adding 3rd party jars to WEB-INF/lib automatically using Eclipse/Tomcat

+0

確定這是解決方案。我將cacheclient.jar和spymemcached.jar放入了Web應用程序的WEB-INF/lib目錄中。然而,spymemcached.jar也在cacheclient.jar的lib目錄中。正如我所看到的,從庫中的jar引用類不是本地支持的,所以需要One-Jar或任何其他包裝。 –

1

在你的情況cacheclient.jar對spymemcached.jar的依賴。但是,當您構建cacheclient.jar時,它不會與spymemcached.jar一起打包。所以只需複製cacheclient。Tomcat/lib文件夾中的jar是不夠的。首先,將jar文件複製到tomcat lib文件夾中並不是一個好習慣。

你可以做的是複製你的罐子 servicewebapp.war> WenContent> WEB-INF> lib應該工作。