我有一个使用服务构建器构建的 Liferay 门户项目。在生成 portlet 时,还创建了一个 jar,我想在其他 portlet 中使用该 jar。从这里和其他地方的帖子中,建议的方法是将 myPortletName-portlet-services.jar 放在另一个 portlet 的 WEB-INF/lib 文件夹中。我还看到了 *-portlet-services.jar 放在 Tomcat 的 /lib/ext 文件夹中的位置。我还阅读了应该使用依赖项更新 liferay-plugin-package.properties 的位置。
我尝试了每种方法,每种方法都产生了非常接近工作的结果。服务构建器构建的 jar 引用了与 LR 数据库不同的 jndi/jdbc 全局资源,当从该 jar 调用方法时,我收到“用户缺少权限或找不到对象:”错误(我已在其他地方发布过有关此内容)。
我的预感是 jar 对 Spring/Hibernate 的一些依赖没有得到满足。那,或者当 jar 放置在服务构建器部署的门户之外时,jndi/jdbc 资源不“可见”。无论如何,很明显找到了 jar 的方法(否则可怕的 beanLocator 错误),所以现在它只是一个 DB 连接问题。
问题是:当服务构建器生成的 jar 放置在其他门户中的原始门户之外时,是否存在一些结构依赖关系?