Saya mencoba mengedit JSP untuk sebuah proyek dan saya mendapatkan NullPointerException di suatu tempat di JSP ketika diminta dari server saya.
Server web saya (JBoss) melaporkan pengecualian, tetapi memberi saya nomor baris palsu. Ini melaporkan bahwa pengecualian terjadi pada baris 702, tetapi JSP saya hanya 146 baris, jadi saya tidak dapat mengidentifikasi baris mana yang tersedak.
Apa sajakah teknik yang baik untuk men-debug kesalahan dalam JSP? Saya menggunakan IntelliJ 9 Ultimate sebagai IDE saya.
Terima kasih
Jawaban:
Ada beberapa opsi yang dapat membantu Anda:
Jawaban ini sebenarnya menjelaskan cara men-debug JSP secara khusus: /programming/33739/jsp-debugging-in-intellij-idea . Saya belum pernah mencoba ini jadi saya mengikuti tiga saran berikutnya ketika saya menggunakan JSP, JBoss, dan IntelliJ ...
Ingat bahwa JSP dikompilasi ke kelas. Ketika dikatakan baris 702, itu berarti di kelas yang dikompilasi. Jika ya
test.jsp
, nama kelasnya mungkintest_jsp
, jadi buka direktori kerja JBoss Anda dan caritest_jsp.java
(setelah Anda menemukan direktori yang tepat, Anda akan melihat bahwa struktur direktori cocok dengan struktur direktori JSP Anda). Setiap kali saya memiliki pengecualian JSP saya bisa menemukan garis dengan cukup mudah dan biasanya mencocokkannya dengan baris yang sesuai di JSP.Breakpoints bekerja dengan baik di kelas Java yang dipanggil dari JSP. Jadi, mungkin Anda bisa memindahkan kode skrip Java yang Anda miliki di JSP Anda ke dalam kelas dan men-debug dari titik masuk. Di masa depan Anda juga dapat membiasakan menata ulang logika Anda sehingga sebagian besar berada di kelas yang dipanggil dari JSP, dan JSP sederhana, mudah dan mudah-mudahan tidak membuang pengecualian. Ini adalah praktik yang baik.
Lebih baik lagi, hapus semua (atau hampir semua) logika Java ke dalam kelas Java, meninggalkan JSP untuk tag HTML dan JSP. Saya tahu ini tidak layak segera, tapi sekali lagi, itu ide bagus jangka panjang untuk menghindari masalah seperti ini.
sumber
*_jsp.java
kelas.Anda dapat men-debug halaman JSP dengan mudah seperti kode java:
"file JSP sama dengan men-debug kelas Java, tetapi sebagian besar fitur (Watch, Inspect, dll) tidak diterapkan. Satu-satunya cara untuk mendapatkan nilai variabel adalah tampilan Variabel. "
Lihat tautan di bawah ini:
https://www.laliluna.de/articles/posts/debugging-jsp-java-tutorial.html
sumber