it-swarm.it

Come posso eseguire il debug di un JSP?

Sto cercando di modificare un JSP per un progetto e sto ottenendo una NullPointerException da qualche parte nel JSP quando viene richiesto dal mio server.

Il mio server Web (JBoss) sta segnalando l'eccezione, ma mi sta fornendo un numero di riga falso. Sta segnalando che l'eccezione si è verificata sulla linea 702, ma il mio JSP è lungo solo 146 linee, quindi non sono in grado di identificare quale linea sta soffocando.

Quali sono alcune buone tecniche per eseguire il debug degli errori nei JSP? Sto usando IntelliJ 9 Ultimate come il mio IDE.

Grazie

28
ampersandre

Esistono diverse opzioni che possono aiutarti:

  1. Questa risposta spiega in realtà come eseguire il debug di JSP in particolare: https://stackoverflow.com/questions/33739/jsp-debugging-in-intellij-idea . Non l'ho mai provato, quindi ho seguito i tre suggerimenti seguenti quando stavo usando JSP, JBoss e IntelliJ ...

  2. Ricorda che i JSP sono compilati in classi. Quando dice la riga 702, significa nella classe compilata. Se hai test.jsp, il nome della classe è probabilmente test_jsp, quindi apri la directory di lavoro di JBoss e cerca test_jsp.Java (una volta trovata la directory corretta, vedrai che la struttura della directory corrisponde alla struttura della directory JSP). Ogni volta che ho avuto un'eccezione JSP ho potuto trovare la linea abbastanza facilmente e di solito abbinarla alla linea corrispondente nel JSP.

  3. I punti di interruzione funzionano bene in Java classi chiamato da un JSP. Quindi, forse puoi spostare il Java codice di script che hai nel tuo JSP in una classe e debug dal punto di ingresso. In futuro puoi anche prendere l'abitudine di riorganizzare la tua logica in modo che la maggior parte di essa sia in una classe che viene chiamato dal JSP e il JSP è semplice, diretto e si spera che non dia alcuna eccezione. Questa è comunque una buona pratica.

  4. Meglio ancora, rimuovere tutto (o praticamente tutto) Java la logica in Java classi, lasciando JSP per tag HTML e JSP. So che questo non è fattibile giusto lontano, ma ancora una volta, è una buona idea a lungo termine evitare problemi come questo.

30
Nicole