【发布时间】:2014-03-14 13:29:28
【问题描述】:
我创建了一个 Liferay 自定义 MVC portlet,它需要调用其他人在已经部署在服务器上的 ext 插件中定义的一些服务/类。有谁知道解决“找不到类/服务”错误需要什么?
提前致谢!
【问题讨论】:
我创建了一个 Liferay 自定义 MVC portlet,它需要调用其他人在已经部署在服务器上的 ext 插件中定义的一些服务/类。有谁知道解决“找不到类/服务”错误需要什么?
提前致谢!
【问题讨论】:
部署 EXT 插件后,任何插件都可以访问 ext-<plugin-name>-ext-service.jar 中的类,因为它进入全局类路径(tomcat 为 /tomcat/lib/ext),就像 liferay 的 portal-service.jar。
但ext-<plugin-name>-ext-impl.jar 中的类只能通过 EXT 和挂钩 JSP(如果有)访问,因为它类似于 portal-impl.jar,因为它驻留在门户类路径中的 \tomcat\webapps\ROOT\WEB-INF\lib 中。
因此,如果您正在访问 ext-impl.jar 中的类,这似乎是这种情况,那么我很抱歉地说 但您不走运。
如果您可以提供更多信息,可能会找到一些解决方法。
【讨论】:
ext-impl 复制到您的portlet 并复制依赖项。但是,如果您使用来自portal-impl 的很多类,那么这似乎不是一个选择。您可以尝试重构并查看是否所有服务都可以移动到您的 portlet 或 ext-service。目前我只能想到这个。
我已经解决了这个问题。我从我的 portlet 直接使用数据库,而不是使用服务,并将所需的 java 函数从 ext 复制到我的 portlet。这已经解决了。
【讨论】: