Callback from child window


I have a current application which is running on Adobe Flex, which communicates to a third party application (Java application) using Javascript Communication.

Due to business needs we need to migrate the Adobe Flex app to Vaadin application. Now the question is that how do we still communicate with the third party application (java app) using javascript.

Is there a bridge or a way to talk with this child window.



I think I haven’t provided enough information. Well the issue is :

We have a current Adobe Flex application which talks to a Java based application (third party application) through Javascript communication. As Flex provides IExternalInterface to communicate back and forth with this javascript. Now when the third party communicates back with Flex app, it uses Javascript functions callback for communication.

So the problem is how do I expose javascript functions on Vaadin app so that the third party application can communicate back to Vaadin and in turn call some server side function.

Once again thanks for your help


This really hasn’t got anything to do with Vaadin, as you are (if I understood correctly) just interested to have two Java applications communicate with each other. You can do all the communication “behind the scenes” where Vaadin is not a part of. As I see it the best way to do this would to drop the javascript communication and just use Java technologies to handle it, like
Java RMI
. I’m no expert of this so I can’t help further with the details. May be that your java server already uses something like this, and it’s just the Adobe Flex part uses javascript to handle it.

Downside with this is that you
have to change something on the server side as well, and that may not be possible as it is some third party software. My best advice is that you investigate exactly what technologies the third party app uses to do the remote calling, and implement the very same thing in your app. You can probably use a lot of the same code, if you have access to the sources.