Nel mio progetto attuale usiamo una tradizionale app Java EE come backend per un'applicazione Play. Tutta la logica dell'applicazione è implementata in EJB stateless a cui si accede tramite RMI.
I controller di riproduzione utilizzano la ricerca JNDI remota per ottenere stub per le interfacce remote per i nostri EJB. Le definizioni delle classi per le classi modello e le interfacce remote sono condivise tra l'app Play e l'applicazione Java EE in esecuzione sul nostro server applicazioni (Glassfish).
L'applicazione Java EE è creata da Maven che distribuisce un ejb-client.jar sul nostro server centrale Nexus, anch'esso accessibile per il runtime di riproduzione (abilitato dalla creazione di un file di installazione Ivy personalizzato).
Questa soluzione ha funzionato bene per noi finora. Per velocizzare le cose e rendere l'app scalabile, utilizziamo il supporto asincrono di Job e memcache di Play.
Dolce :-)
Potrebbe condividere alcuni dettagli su come si esegue la ricerca JNDI? Ho anche cercato di cercare EJB distribuiti su GlassFish da un'applicazione Play 2.1 ma come puoi vedere in questa domanda non ho avuto molta fortuna finora ... – Christina