2013-02-27 28 views
12

Vorrei provare l'agente di caricamento della classe "Spring Loaded" di Spring Source, con Tomcat eseguito tramite IntelliJ.IntelliJ + Tomcat + caricato a molla

https://github.com/SpringSource/spring-loaded

ho aggiunto gli argomenti JVM per la mia configurazione di Tomcat correre, e il mio webapp si avvia senza errori e sembra comportarsi normalmente.

Non sono sicuro di come attivare il ricaricamento della classe. Devo solo compilare le classi che modifico? Ci ho provato e quello non sembra funzionare. Devo aggiornare Tomcat e distribuire classi e risorse? Anche quello non sembra funzionare ...?

Eventuali dettagli di configurazione specifici sarebbero molto apprezzati.

MODIFICA: Ulteriori informazioni, penso che il mio problema potrebbe avere a che fare con l'utilizzo di due moduli, una libreria di codici di base e una webapp. Uso Maven per entrambi, uno configurato come un progetto jar e l'altro come progetto di guerra. IntelliJ imposta l'artefatto per la guerra esplosa per utilizzare il file jar del modulo jar. Ho provato a cambiare la configurazione di Artifact per incorporare l'output compilato del modulo jar in WEB-INF/classes. Ora vedo i file .class in target/webapp/WEB-INF/class/etc. Ma non sono sicuro di come ottenere IntelliJ per aggiornare un file di classe specifico quando lo modifico.

+0

Hai capire un modo per gestire i moduli con caricamento a molla? – Damien

+0

Non ancora. Non sono tornato a lavorare su questo per molto tempo. – sdouglass

risposta

5

Se sono stati aggiunti i seguenti parametri JVM (come descritto nella pagina a molla) per il vostro gatto

-javaagent:<pathTo>/springloaded-{VERSION}.jar -noverify SomeJavaClass 

si dovrebbe andare bene. Potrebbe essere utile disabilitare il ricaricamento automatico in tomcat per la webapp che stai testando. Per exmaple nel server.xml:

<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true"> 
    <Context docBase="projekt" path="/projekt" reloadable="false" ... 

Ciò garantisce che solo il caricatore di classi caricato a molla carichi le classi modificate.

+0

Grazie per la risposta. Che cosa fa scattare il classloader springloaded per ricaricare le classi cambiate? Succede solo periodicamente? Monitora i file di classe per le modifiche di data e ora? O devo eseguire un'azione in IntelliJ per attivarla? – sdouglass

+0

In base a https://github.com/spring-projects/spring-loaded, i file di classe vengono guardati per apportare modifiche una volta al secondo. – varad

+0

Scusate ma, come è stato modificato con IntelliJ? Voglio dire, è impossibile cambiare usando IntelliJ perché non hai visibilità del "server.xml", vero? –

Problemi correlati