在Liferay中,只有一个实例接收到同一个接收portlet的多个实例的事件

时间:2015-06-18 15:37:12

标签: jsf primefaces liferay liferay-6 portlet

我正在使用带有JSF portlet的liferay 6.2.2开发一个liferay应用程序。

我的第2页有一个portlet A(触发事件)的实例和一个portlet B的两个实例(可以接收事件)。

编辑:我正在使用Liferay客户端IPC系统和js来发送/接收事件。

我的目标是portlet B1接收portlet A1发送的事件,另外2个接收事件(B2中的B2)。

托管bean是ViewScoped(兼容ajax)。为了选择哪个portlet应该处理正确的事件,我使用portlet ID(receiverId在事件有效载荷中)。

所有portlet都是可实现的(true)和ajaxable(true) 目前,当我将活动从A1发送到B1时,一切正常。 当我尝试从A2发送到B2时,没有任何反应。

通过事件的有效负载发送的portlet Id与预期的接收portlet匹配。

每个portlet实例的托管bean实例在页面的init(@PostConstruct)阶段正确创建(我有两个不同的托管bean实例地址),当加载或重新加载页面时。

触发事件时的预期行为是每个接收portlet检查有效内容中的portlet Id是否与其自己的id匹配。如果是,则称为continue方法。如果不是,则停止该方法(return;)。

问题是:  当事件被触发时(Liferay.fire / Liferay.on机制),只调用一个托管bean实例(比如说B1)(2次),同时应该调用托管bean(B1和B2)的每个实例。一次。

感谢您抽出时间阅读我

0 个答案:

没有答案