Liferay:当-LocalServiceUtil可用时执行操作

时间:2016-01-08 19:41:03

标签: liferay liferay-service-builder

我已经使用服务构建器实现了一个功能性的Liferay服务,我想尽快在-LocalServiceUtil类上调用一个方法。这是我希望在服务启动时以及重新部署服务时执行的任务。

即使-LocalServiceUtil类上的所有方法都是静态的,如果过早调用它们,它们也会抛出BeanLocatorException

  

com.liferay.portal.kernel.bean.BeanLocatorException:尚未为servlet上下文设置BeanLocator portal-navigation-impl

有没有办法在-LocalServiceImpl实例上调用方法或以其他方式调用方法以便我可以这样做?

谢谢

1 个答案:

答案 0 :(得分:2)

当你谈到初始化顺序时:我不是100%肯定这个,但我会写一个startup action。每次启动一个钩子(或插件)时都会运行 - 包括重新部署。听起来像你想要的 - 如果初始化顺序有效,这就是你的解决方案。

否则:创建一个独立的钩子,它取决于您当前使用的钩子。这也将重新启动,但只有在提供* -LocalService的钩子已经启动时才会运行。 (依赖关系在liferay-plugin-package.properties中声明,密钥为required-deployment-context - 这是来自内存 - 如果我错了,有人会纠正我。)