我已经使用服务构建器实现了一个功能性的Liferay服务,我想尽快在-LocalServiceUtil
类上调用一个方法。这是我希望在服务启动时以及重新部署服务时执行的任务。
即使-LocalServiceUtil
类上的所有方法都是静态的,如果过早调用它们,它们也会抛出BeanLocatorException
。
com.liferay.portal.kernel.bean.BeanLocatorException:尚未为servlet上下文设置BeanLocator portal-navigation-impl
有没有办法在-LocalServiceImpl
实例上调用方法或以其他方式调用方法以便我可以这样做?
谢谢
答案 0 :(得分:2)
当你谈到初始化顺序时:我不是100%肯定这个,但我会写一个startup action。每次启动一个钩子(或插件)时都会运行 - 包括重新部署。听起来像你想要的 - 如果初始化顺序有效,这就是你的解决方案。
否则:创建一个独立的钩子,它取决于您当前使用的钩子。这也将重新启动,但只有在提供* -LocalService的钩子已经启动时才会运行。 (依赖关系在liferay-plugin-package.properties
中声明,密钥为required-deployment-context
- 这是来自内存 - 如果我错了,有人会纠正我。)