En mi proyecto actual utilizamos una aplicación Java EE tradicional como back-end para una aplicación Play. Toda la lógica de la aplicación se implementa en EJB sin estado a los que se accede a través de RMI.
Los controles de reproducción utilizan la búsqueda JNDI remota para obtener los resguardo de las interfaces remotas para nuestros EJB. Las definiciones de clase para las clases modelo, así como las interfaces remotas, se comparten entre la aplicación Play y la aplicación Java EE que se ejecuta en nuestro servidor de aplicaciones (Glassfish).
La aplicación Java EE está construida por Maven que implementa un ejb-client.jar en nuestro servidor Nexus central, que también es accesible para el tiempo de ejecución de Play (habilitado al crear un archivo de instalación de Ivy personalizado).
Esta solución ha funcionado bien para nosotros hasta ahora. Para acelerar las cosas y hacer que la aplicación sea escalable, utilizamos el trabajo asincrónico de Play y la compatibilidad con Memcache.
Dulce :-)
¿Podría compartir algunos detalles sobre cómo realiza la búsqueda JNDI? También he estado intentando buscar EJB implementados en GlassFish desde una aplicación Play 2.1 pero, como pueden ver en esta pregunta, hasta ahora no he tenido mucha suerte ... – Christina