03 marzo 2009

Java : Eseguire Jar o Web Application in modalità debug

Capita spesso di dover rintracciare determinati errori o comportamenti anomali della propria applicazione. Ritorna utilissimo utilizzare l'esecuzione in modalità debug rendendo possibile tramite il proprio IDE l'esecuzione passo passo di una determinato blocco di codice, controllare lo stato delle variabili in un determinato stato del sistema, controllare lo stack trace, valutare determinate espressioni personalizzate e modificare a runtime il valore delle variabili.
Con un utilizzo corretto e avanzato di questa modalità è possibile rintracciare e risolvere i problemi delle nostre applicazioni in pochissimi istanti.

Non starò a spiegare come eseguire il debug in maniera ottimale. Questo post ha il semplice scopo di voler aiutare gli utenti a configurare il proprio ide, la propria web application o applicazione stand alone ad essere eseguita in modalità debug.
Il primo passo da eseguire è quello di lanciare l'application server o l'applicazione con i seguenti parametri :
-Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4142,suspend=n

Ad esempio se volessi lanciare il mio container, in questo caso un Oc4j:

java -XX:PermSize=128m -Xmx512m -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4142,suspend=n -jar oc4j.jar -userThreads

Se invece volessi lanciare il jar della mia applicazione:
javaw -jar -Xmx512M -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=4142,suspend=n -jar externalEPG.jar

Dopodichè è necessario configurare il proprio IDE per poter comunicare con la virtual machine ed eseguire il codice in debug.
N.B : E' necessario che eclipse utilizzi la stessa virtual machine utilizzata dall'applicazione.
E' necessario andare nel menù Run -> Open Debug dialog...
Settare le impostazioni come nell'immagine:



E' necessario quindi scegliere il progetto da cui eclipse andrà recuperare i relativi sources, la connection type: Socket (metodo con cui eclipse si connette alla VirtualMachine) e la porta che abbiamo impostato precedentemente nei parametri passati alla VM (nel nostro caso 4142).
Adesso è necessario solamente avviare il debug mediante il corrispondente pulsante e switchare la modalità di visualizzazione in quella di debug. Il risultato che otterrete sarà il seguente:



Molti non adorano "Debuggare" ma altri riescono a coglierne a pieno la potenza. Buon divertimento!

Nessun commento: