使用导入的service.jar时,“BeanLocator对于servlet上下文为null”

时间:2015-01-26 15:21:13

标签: liferay-6 liferay-service-builder

我将service.jar从一个portlet(让我们称之为Portlet A)包含到另一个客户端Portlet的WEB-INF/lib文件夹中,以便客户端可以使用*LocalServiceUtil。请注意,这是我以前很多次成功完成的事情。

但是在这种情况下,我在调用LocalServiceUtil时遇到了这个运行时异常:

[PortletBeanLocatorUtil:38] BeanLocator is null for servlet context [Portlet A's portlet-name]

我几乎可以肯定项目属性或构建portlet A的配置有问题,但我不确定在哪里查看。 Liferay论坛充满了与BeanLocator相关的问题,但每个问题都有另一个解决方案

这两个项目都是针对相同的Liferay SDK和Tomcat Server版本设计和部署的。

修复BeanLocator问题的任何想法?

1 个答案:

答案 0 :(得分:0)

* service.jar仅包含来自portlet A的服务的签名,即* LocalService和* Service接口,模型接口和util类(以及通常位于docroot下的服务文件夹中的所有项目)树)而不是实现类。 因此,为了使其工作,必须在服务器中同时部署两个portlet(否则将找不到实现类)。 如果是这种情况,您可以更改portlet B的liferay-plugin-package.properties文件,并将portlet A添加为必需的部署上下文。这将自动注入后者的service.jar。

相关问题