在Liferay portlet中存储依赖项的位置

时间:2013-05-27 09:04:27

标签: java jboss liferay portlet

这可能是一个非常基本的问题,但在java中管理依赖关系对我来说是一场噩梦。我有一个Liferay portelt(Liferay 6.05部署在JBoss AS 6上),我正在尝试使用batik。当我在Eclipse中引用batik.jar(可能还有其他一些来自发行版的jar)(属性 - >构建路径 - >添加外部jar)时,IDE会说一切正常并且没有显示错误。

但是,当我将我的portlet部署到服务器时,我得到ClassNotFoundException - portlet没有找到我之前引用的jar。我觉得问题是我只在本地机器上引用这些jar并且它们不在服务器上(它们也没有部署在portlet的WEB-INF / lib目录中)。

我应该把那些罐子复制到其他地方吗? Perhpas在liferay目录中的某个地方?或者解压缩JBOSS AS的目录?

感谢您的任何提示。如果这听起来太混乱,我会尽量让自己更清楚......

1 个答案:

答案 0 :(得分:4)

要使自定义portlet正常工作,依赖项jar应存在于portlet的WEB-INF/lib或服务器的全局类路径中,如/liferay-portal-6.0/jboss/server/default/lib.../lib/ext

因此,如果您使用相同的依赖关系jar开发许多portlet,则可以将它们保存在Server的全局类路径中,如果需要更改任何jar,则需要重新启动服务器。这样所有portlet甚至liferay portlet(如果你想在钩子或其他东西中使用蜡染类)都可以访问蜡染罐。

否则,如果您使用的是ANT或MAVEN等构建工具,那么您可以创建一个脚本,该脚本将在创建WAR文件时执行,并自动将所需的jar复制到您的portlet WEB-INF/lib中战争。

或者您可以将它们复制到您手动开发的每个portlet的WEB-INF/lib中: - )