2013-05-27 34 views
1

這可能是一個非常基本的問題,但在Java中管理依賴是一場噩夢我。我有一個Liferay portelt(部署在JBoss AS 6上的Liferay 6.05),我試圖在其中使用batik。當我在Eclipse中引用batik.jar(以及可能來自發行版的其他一些jar)(屬性 - >構建路徑 - >添加外部jar)時,IDE會說一切都很好,並且不會顯示錯誤。凡存儲在Liferay的portlet的依賴

然而,當我在我的portlet部署到服務器,我得到的ClassNotFoundException - portlet的犯規找到我前面提到的罐子。我覺得問題在於我只在本地機器上引用這些jar,並且它們不在服務器上(它們不會部署在portlet的WEB-INF/lib目錄中)。

我應該複製這些罐子別的地方? Perhpas在liferay目錄中的某處?或者到JBOSS AS解壓縮的目錄?

感謝您的任何提示。我會盡量讓自己更清楚,如果這聽起來太混亂...

回答

4

對於自定義portlet正常工作依賴罐子應該在portlet的WEB-INF/lib或在服務器像/liferay-portal-6.0/jboss/server/default/lib或全局類路徑存在.../lib/ext

因此,如果您正在開發使用相同的依賴罐子,你可以讓他們在服務器的全局類路徑許多門戶,這將需要重新啓動服務器,如果任何廣口瓶需要改變。這樣,所有的portlet甚至liferay portlet(如果你想在鉤子或類似的東西中使用蠟染類)都可以訪問蠟染罐。

否則,如果您使用的是像ANT或MAVEN這樣的構建工具,那麼您可以創建一個腳本,該腳本將在創建WAR文件時執行,並會自動將所需的jar複製到WAR中的portlet的WEB-INF/lib

否則,您可以將它們複製到您手動開發的每個portlet的WEB-INF/lib :-)