Sono abbastanza nuovo in Java EE e ho avuto problemi con la lentezza del processo di distribuzione e mi chiedo se sto facendo qualcosa di sbagliato. Ho esperienza con Django in cui si verificano immediatamente le modifiche al codice, e sembra che l'implementazione di applicazioni Java EE sia un po 'confusa - ci sono più cose che rivendicano l'implementazione a caldo (Glassfish, Eclipse maniaco hotdeploy, Jetty hotdeploy, JRebel ecc.).Ridistribuzione immediata delle applicazioni Java EE
Il mio progetto è un progetto Maven e sto utilizzando Netbeans per la distribuzione. Il sito utilizza i framework Spring, JSF e Hibernate.
In Netbeans, Distribuisci su Salva, in base alla seguente schermata sembra essere abilitato, ma fare clic su/unclicking non è possibile dal momento che afferma di ottenere le informazioni dal mio pom.xml (anche se non esiste un tale campo nel mio pom .xml (solo dipendenze)).
Ora, le modifiche a alcuni file sembrano essere immediatamente efficaci. Questi includono: - file JSF - File statici
Modifiche a seguito richiedono distribuzione: - Qualsiasi file XML - qualsiasi file proprietà, anche le proprietà di localizzazione dei file - Qualsiasi file java
Modifiche a quelli che mi richiedono distribuire manualmente e il ridistribuzione richiede mezzo minuto anche se attualmente ho solo 2-3 classi, in pratica una singola classe utente e una classe di autorizzazione. Il progetto consente solo gli accessi al momento, e nonostante ciò, la compilazione dura circa pochi secondi; e il contenitore (Glassfish) sembra consumare circa 600 MB di RAM e dà persino errori PermGen dopo alcune distribuzioni e ho bisogno di uccidere il processo java utilizzando Task Manager. (Ho letto che questo è correlato alla perdita di garbage collector dopo ogni redeploy, e ho anche usato jhat per generare un profilo, ma è stato presentato con un elenco di migliaia di classi, le mie classi, Spring, Hibernate, ecc.)
Ho anche sentito parlare di jrebel e ho provato a eseguirlo, ma sembra che non sia compatibile con la mia versione di Netbeans (7.0) e anche se sembra funzionare, qualsiasi modifica a qualsiasi file java richiede ancora una ridistribuzione.
C'è qualcosa che posso fare per ovviare a questi problemi, o è normale che Java EE aspetti circa 1 minuto dopo ogni modifica a qualsiasi file Java? Questo problema uccide la produttività in modo significativo.
Qui è la mia uscita Glassfish quando si distribuisce l'applicazione: http://pastebin.com/7FhZ6AVh
"Applica modifiche al codice" è hotswap. Non funzionerà se stai cambiando una firma di classe. – Daniel