0

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

即使类上的所有方法都是静态的,但如果调用得太快-LocalServiceUtil,它们也会抛出 a 。BeanLocatorException

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

有什么方法可以调用-LocalServiceImpl实例上的方法或其他方法以便我可以做到这一点?

谢谢

4

1 回答 1

2

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

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

于 2016-01-08T20:33:39.070 回答