我在 Liferay 的同一页面上使用了 2 个 Vaadin Portlet。第一个显示条目表,每一行都有一个按钮来显示有关此条目的详细信息。
单击按钮时,将发送 IPC 事件,该事件由第二个 portlet 接收,然后切换到显示内容的表格视图。
通过单击第一个 portlet 上的关闭按钮,第二个 portlet 将再次收到 IPC 事件并返回到其原始状态,这是一个空白视图,仅附加了 Liferay IPC 侦听器。
我的问题是,在第三次单击后,Liferay 出现了不同步错误。当视图改变时,我总是将它附加到主窗口。所以我不创建具有相同名称的其他窗口。
当我在页面上只使用一个 portlet 时,我可以毫无问题地来回切换。可能是浏览器在某些时候想要在客户端触发一个事件,但 IPC 已经在服务器端消失了?
很难确定这个问题的根源。