it-swarm-id.com

Bagaimana saya bisa men-debug JSP?

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

28
ampersandre

Ada beberapa opsi yang dapat membantu Anda:

  1. Jawaban ini sebenarnya menjelaskan cara men-debug JSP secara khusus: https://stackoverflow.com/questions/33739/jsp-debugging-in-intellij-idea . Saya belum pernah mencoba ini jadi saya mengikuti tiga saran berikutnya ketika saya menggunakan JSP, JBoss, dan IntelliJ ...

  2. Ingatlah bahwa JSP dikompilasi ke kelas. Ketika ia mengatakan baris 702, itu berarti di kelas yang dikompilasi. Jika Anda memiliki test.jsp, nama kelasnya mungkin test_jsp, jadi buka direktori kerja JBoss Anda dan cari test_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.

  3. Breakpoints bekerja dengan baik di Java kelas dipanggil dari JSP. Jadi, mungkin Anda bisa memindahkan Java kode skrip yang Anda miliki di JSP Anda menjadi kelas dan debug dari titik masuk. Di masa depan Anda juga dapat membiasakan menyusun ulang logika Anda sehingga sebagian besar berada di kelas yang sedang dipanggil dari JSP, dan JSP sederhana, mudah dan mudah-mudahan tidak membuang pengecualian. Ini adalah praktik yang baik.

  4. Lebih baik lagi, hapus semua (atau hampir semua) Java logika ke Java kelas, meninggalkan JSP untuk HTML dan tag JSP. Saya tahu ini tidak layak bukan benar pergi, tapi sekali lagi, itu ide bagus jangka panjang untuk menghindari masalah seperti ini.

30
Nicole