1

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

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

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

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

4

1 回答 1

4

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

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

或者,如果您使用的是 ANT 或 MAVEN 之类的构建工具,那么您可以拥有一个脚本,该脚本将在创建 WAR 文件时执行,并且会自动将所需的 jar 复制到WEB-INF/libWAR 中的 portlet 中。

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

于 2013-05-27T09:30:37.440 回答