we had similar experience in our previous project. There was an eclipse-rcp application with an integrated Jetty server (it started programmatically when the application started). The GWT application was deployed to Jetty, as usual. There was also an OSGI service as a controller to provide communication between the GWT server and other parts of the application. The GWT server was a regular RCP server, which is described in most examples. He had a link to the controller. In addition, it was an event listener that supports bot communication.
The main problem for me, I think, was the synchronization problem. Since there were many messages between the eclipse-rcp application, the GWT part (each of which allows us to say 100 ms that the message was received), and GWT had an asynchronous way of communication between the client part and its server part, then it was necessary to create some kind of mechanism to synchronize these messages. Otherwise, there were no performance issues (except IE 6. which should have been supported: S: D).
Hope this helps.
Update. As far as I remember, the controller was registered as an OSGI service only for communication with other services of the Eclipse-RCP part. To communicate with the GWT controller, a special interface was implemented, which was known to the GWT server (the controller was registered as an executor by creating an instance, and the server was registered in the controller as IMessageListener). This interface lay in a separate project, which could also be embedded in a .war file. This project also contained a number of events to support feedback from the controller to the GWT server via the IMessageListener interface.
This is kind of confused, probably sorry. Maybe I should draw a chart.
source share