Vaadin 8 and Inter-portlet communications on Liferay

Hi All!
My configuration is: Liferay 7GA4 + Vaadin 8.1.4 + Vaadin Spreadsheet 2.0.0
I have several portlets (some of them with spreadsheets) and one panel portlet with control buttons.
I have to fire event in one portlet and have to catch event in another portlet
I can’t found any working example for that.
I’ve tried to use Vaadin IPC addon, but it was built in 2012 for Vaadin 7.
Next I’ve taken source code of that addon and tried to refact it for Vaadin 8, but without success
LiferayIPC extends AbstractComponent and my last error was “gwt module does not implement LiferayIPC”

Please help me…

Is seems to me there is a bug in Framework. IPC works only after server restarting.
The “Object is not an instance of declaring class” error was generated after redeploying application

Have you checked the pull request in the Vaadin IPC add-on repo, it seems there is almost complete work in progress on the matter

https://github.com/vaadin/liferayipc/pull/1/files

No, I haven’t seen that yet, thank you. It is very interesting, I’ve done almost the same work, but I haven’t changed the constructor in LiferayIPC class (“registerRpc((LiferayIPCRpc) this::fireEvent)”)
I think my problem is here. I’ll try to change and tell you result.
But if you use Liferay 6.2, it is not good. New version has a new architecture based on OSGi, and only vaadin core libraries support it. Spreadsheets are not supported, Charts are not supported, IPC is not supported etc.
What’s more, if you install last Liferay IDE, you’ll see that your instructions and plugins for IDE also went off…

Unfortunately, the error still persists. I have to restart server every time after re-deploy

Hello Tatu,

Thank you for the information. I got the latest code from https://github.com/vaadin/liferayipc and deployed it in Liferay.

But the problem is…
It’s working fine only when there are just Two portlets in one page i.e. sender and receiver. I have an use case like there are around Seven portlets in the same page, one portlet is firing the event and remaining Six are supposed to catch the same event. But, its not working as expected, the event has been received by only one portlet out of Six. I can’t point out which Portlet is receiving exactly, because its inconsistent when I restart the server.

I dont think its like one-to-one communication, but is there any configuration that I’m missing? I’m using Vaadin 8 + liferay-ce-portal-7.1.2.

When I place the cursor on receiver portlets i can see the exception “com.vaadin.server.ServerRpcManager$RpcInvocationException: Unable to invoke method sendEvent”.

Hello Tatu,

Thank you for the information. I got the latest code from https://github.com/vaadin/liferayipc and deployed it in Liferay.

But the problem is…
It’s working fine only when there are just Two portlets in one page i.e. sender and receiver. I have an use case like there are around Seven portlets in the same page, one portlet is firing the event and remaining Six are supposed to catch the same event. But, its not working as expected, the event has been received by only one portlet out of Six. I can’t point out which Portlet is receiving exactly, because its inconsistent when I restart the server.

I dont think its like one-to-one communication, but is there any configuration that I’m missing? I’m using Vaadin 8 + liferay-ce-portal-7.1.2.

When I place the cursor on receiver portlets i can see the exception “com.vaadin.server.ServerRpcManager$RpcInvocationException: Unable to invoke method sendEvent”.

Anji Reddy:
Hello Tatu,

Thank you for the information. I got the latest code from https://github.com/vaadin/liferayipc and deployed it in Liferay.

But the problem is…
It’s working fine only when there are just Two portlets in one page i.e. sender and receiver. I have an use case like there are around Seven portlets in the same page, one portlet is firing the event and remaining Six are supposed to catch the same event. But, its not working as expected, the event has been received by only one portlet out of Six. I can’t point out which Portlet is receiving exactly, because its inconsistent when I restart the server.

I dont think its like one-to-one communication, but is there any configuration that I’m missing? I’m using Vaadin 8 + liferay-ce-portal-7.1.2.

When I place the cursor on receiver portlets i can see the exception “com.vaadin.server.ServerRpcManager$RpcInvocationException: Unable to invoke method sendEvent”.

Hello Anji,

Did you able to manage this issue? i am facing exactly the same error, did you find any solution?