Sono nuovo nell'usare Java all'interno di un ambiente web. Al momento ho un'applicazione Java che eseguiamo su una macchina locale, la chiameremo l'app del server. Vogliamo aggiungere la possibilità di comunicare con questa applicazione tramite un'interfaccia RESTful.
Ho giocato con Tomcat e Glassfish e ho qualcosa che funziona, ma sono certo che sto facendo le cose in un modo strano. Ho un listener nell'applicazione web che crea un'istanza della mia applicazione server ogni volta che viene avviato Tomcat.
Quando viene creata una connessione, il servlet acquisisce l'istanza di questa applicazione server in modo che possa interagire con essa e passare i dati a un jsp. Non posso fare a meno di sentire che questo non è un approccio convenzionale.
Sono propenso a eseguire semplicemente il server jar completamente separatamente e ad usare socket sul computer locale affinché i servlet possano interagire, ma non posso fare a meno di pensare che questo sia eccessivo. Mi sono guardato intorno e sembra che RMI potrebbe essere una soluzione, ma non mi è familiare.
Ecco cosa devo essere in grado di fare:
- Tomcat deve essere in esecuzione per accettare richieste REST
- Ho bisogno di un modo per l'applicazione web per verificare se l'app del server è in esecuzione
- Ho bisogno che l'app web sia in grado di ottenere un'istanza dell'app del server in modo da poter chiamare i suoi metodi o almeno inviarla un po 'di JSON
Nel complesso, penso che sia un compito abbastanza semplice, mi sto solo perdendo un po 'cercando di trovare un buon modo per organizzare il mio progetto.
Devo eseguire l'app del server all'esterno dell'ambiente Tomcat e utilizzare solo i socket e alcuni JSON?
Devo eseguire l'app del server al di fuori di Tomcat e utilizzare RMI (richiederà qualche ricerca, ma non è un grosso problema)
Devo mantenere l'app del server nell'ambiente Tomcat come se fosse attualmente?