如何在其他portlet中使用Liferay服务构建器jar

时间:2012-12-14 18:19:32

标签: service liferay jndi builder

我有一个使用服务构建器构建的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依赖。那个,或者jndi / jdbc资源不可见"可见"当jar放置在服务构建器部署门户之外时。无论如何,显而易见的是找到了jar的方法(否则是可怕的beanLocator错误)所以它现在只是一个数据库连接问题。

问题是:当服务构建器生成的jar放在某个其他门户的原始门户之外时,是否存在一些未满足的结构依赖性?

1 个答案:

答案 0 :(得分:0)

在其他portlet中使用Liferay服务构建器jar 试试:

  1. 在Tomcat(或其他应用程序服务器)的lib中的jar中创建ServiceLocator
  2. 通过setter将bean从服务构建器设置为服务定位器作为spring上下文中的静态字段(setter必须设置静态字段)
  3. 接下来实现将使用来自服务定位器的bean的bean,并将解析调用

    • 只需将服务构建器中的bean传递给放置在tomcat lib中的类静态字段(随处可见)
    • 在lib中的jar中放置所需的接口