我的场景是下一个场景,我想获得救生门户中可用portlet的当前状态,但主要想法是生成一个图表或一些图形资源,并在其中填充portlet开始部署时的确切时间戳和portlet完全加载到门户中时的时间戳信息,现在我不知道如何才能得到这些时间戳,我试着从catalina上读到它。但是,对于我的项目负责人来说,这样做是不正确的。感谢您的高级
您有两个选项,创建一个HotDeployListener或侦听messagebus HOT_DELOY消息
选项1:HotDeployListener
部署portlet或任何其他插件时,Liferay会执行在portal.properties 的hot.deploy.listeners
属性中定义的HotDeployListener侦听器列表
请参阅portal.properties 的热部署部分中的默认值
热部署侦听器接收一个HotDeployEvent
对象,该对象包含有关正在部署的portlet的信息,例如可以检索servlet上下文
您必须实现自己的HotDeployListener
,请参阅javadoc文档并将其添加到您的portal-ext.properties中
您必须将hot.deploy.listeners
属性的默认值复制到您的portal-ext.properties中,并将您的侦听器添加到该列表中。
有关更多信息,请参阅portal.properties文件中的文档:
输入一个逗号分隔的类名列表,这些类名实现com.liferay.portal.kernel.deploy.hot.HotDeployListener。这些类用于在运行时处理WAR的部署和取消部署。
侦听器按此属性定义的顺序调用。必须始终首先调用PluginPackageHotDeployListener。必须始终在ServletContextListenerHotDeployListener之前调用SpringHotDeployListener。MessagingHotDeployListener必须始终最后调用。
选项2:侦听messagebus HOT_DELOY消息
portlet部署后,MessagingHotDeployListener会将HOT_DELOY消息发送到Liferay消息总线,请参阅:portal impl/src/com/Liferay/portal/DEPLOY/HOT/MessagingHotDeployment Listener.java#L70-L75
您可以通过创建侦听器来侦听该事件,并调用MessageBusUtil.registerMessageListener(DestinationNames.HOT_DEPLOY, myListener)
或MessageBusUtil.registerMessageListener("liferay/hot_deploy", myListener)
。
监听器必须实现MessageListener
接口,请参阅javadoc文档
有关Liferay messagebus的更多信息,请参阅以下链接:
- https://dev.liferay.com/develop/tutorials/-/knowledge_base/6-2/liferays-message-bus-system
- http://www.liferaysavvy.com/2013/11/lifeay-message-bus-portlethandling-bulk.html
- https://web.liferay.com/es/community/wiki/-/wiki/Main/Message+公共汽车