Quali sono i vantaggi della creazione di una piccola app Web Java da eseguire in un contenitore Servlet (come Tomcat) rispetto alla creazione di un'app Java autonoma con un server Web incorporato e in esecuzione dietro un proxy inverso?Applicazione Web Java in un contenitore Servlet rispetto a standalone
Ho giocato con Java per circa un anno. Ho notato che il lancio di Tomcat richiede tempo e non è sempre possibile eseguire un hot-redeploy a causa di problemi con il programma di caricamento classi. L'API Servlet mi sembra piuttosto complicata, specialmente dal punto di vista della configurazione e del design RESTful (che non supporta completamente).
D'altra parte, ho notato che il mio IDE può compilare ed eseguire un'app standalone alla velocità della luce. Configurare Apache per il reverse-proxying è un gioco da ragazzi, e il Jetty incorporato sembra gestire tutto ciò che posso lanciarci. Non ho bisogno di Servlet quando posso usare Restlet, Wicket, ecc. Essere in grado di sapere meglio come funziona la mia app (perché non è integrata con un enorme server di app) ci dà potere. Le tracce dello stack sono più corte. La dimensione del download è più piccola. La configurazione dell'utente finale è più semplice. Immagino che le prestazioni siano probabilmente migliori perché ci sono meno livelli di software coinvolti.
Tuttavia, mi viene in mente il detto che ciò che sembra troppo bello per essere vero di solito è. Quindi la mia domanda è: perché non dovrei fare le mie app web standalone? Cosa fornisce a me e/o ai miei utenti finali un contenitore Servlet di cui abbiamo davvero bisogno ma che non conosciamo?