There is no need for something as low-level as RMI.
If it turns out that run-time sharing is appropriate (again, think seriously on that), and they are in the same
servlet container, and the container supports cross-context dispatching...
Or, an HTTP request can be issued to the other app...
Or, a web service interface could be established...