JSP'de nasıl hata ayıklayabilirim?


26

Bir proje için bir JSP düzenlemeye çalışıyorum ve sunucumdan talep edildiğinde JSP'de bir yerde NullPointerException alıyorum.

Web sunucum (JBoss) istisnayı bildiriyor, ancak bana sahte bir satır numarası veriyor. İstisnanın 702 numaralı hatta gerçekleştiğini bildiriyor, ancak JSP'm yalnızca 146 satır uzunluğunda, bu nedenle hangi hattın boğulduğunu belirleyemiyorum.

JSP'lerde hataları ayıklamak için bazı iyi teknikler nelerdir? IDE olarak IntelliJ 9 Ultimate kullanıyorum.

Teşekkürler


1
Stackoverflow.com üzerinden sorulabilir
Abimaran Kugathasan

1
Tamam. Üzgünüz, StackOverflow.com ve Programmers.StackExchange.com arasındaki farktan tamamen emin değilim. Hangi soruların nereye ait olduğundan emin değilim .. Programmers.stackexchange SSS bölümünü okudum ama bu biraz belirsizdi.
ampersandre

3
Aslında bunun Stack Overflow'ta iyi olacağından emin değilim. Oldukça spesifik olmasına rağmen (sorunun doğası gereği) yeterince somut detay yoktur. Peşinde olduğunuz, bu site için konuyla ilgili olması gereken hata ayıklama teknikleri.
ChrisF

Jsp'in içine herhangi bir jps dahil ettiniz mi? Satır numarası bu şekilde artabilir. Sorunun stackoverflow'a taşınması gerekiyor
eksiSeven

Tekniklerden biri derleme dosyalarını görmektir: codeinventions.blogspot.com/2014/08/…
Suresh Atta

Yanıtlar:


29

Size yardımcı olabilecek birkaç seçenek var:

  1. Bu cevap aslında JSP'lerin özel olarak nasıl hata ayıklanacağını açıklar: /programming/33739/jsp-debugging-in-intellij-idea . Bunu hiç denemedim, bu yüzden JSP, JBoss ve IntelliJ ...

  2. JSP'lerin sınıflara derlendiğini unutmayın. Satır 702 deyince derlenmiş sınıfta anlamına gelir. test.jspMuhtemelen varsa , sınıf adı muhtemelen test_jsp, JBoss çalışma dizininizi açın ve arayın test_jsp.java(doğru dizini bulduğunuzda, dizin yapısının JSP dizin yapınıza uygun olduğunu göreceksiniz). Ne zaman bir JSP istisnasına sahip olsam çizgiyi kolayca bulabilirim ve genellikle JSP'deki ilgili çizgi ile eşleştirirdim.

  3. Kesme noktaları bir JSP denilen Java sınıflarında gayet iyi çalışır . Böylece, JSP'nizde bulunan Java betiğini bir sınıfa taşıyabilir ve giriş noktasından hata ayıklayabilirsiniz. Gelecekte, mantığınızı yeniden düzenlemeyi alışkanlık haline getirebilirsiniz, böylece çoğunluğu JSP'den çağrılan bir sınıfa girer ve JSP basit, anlaşılırdır ve umarım herhangi bir istisna atmaz. Bu zaten iyi bir uygulamadır.

  4. Daha da iyisi, HTML (ve hemen hemen hepsi) Java mantığını Java sınıflarına kaldırarak HTML ve JSP etiketleri için JSP'leri bırakın. Bunun hemen mümkün olmadığını biliyorum, ancak yine de, bu gibi sorunlardan kaçınmak için iyi bir fikir.


2
JSP'den mantığı kaldırmak için +1. Bu konuda daha fazlası, Model 2 (MVC) mimarisine sahip JSP / Servlet en iyi uygulamalarında görülebilir: oracle.com/technetwork/articles/javase/servlets-jsp-140445.html
bunglestink

Teşekkürler! Seçenek 4 ideal, katılıyorum ama bu projede harika bir görüş / denetleyici ayrımı yok.
ampersandre

1
Ayrıca # 2 öğesi için +1. *_jsp.javaSınıfları nerede bulacağımı bilmiyordum .
scottyseus 28:15

2
her biri birkaç bin satır komut dosyası içeren binlerce JSP'ye sahip bir projedeki JSP'lerden tüm mantığı kaldırarak ... hayır, teşekkürler, sadece Hashtables ve Vector'ları ayıklamak istiyorum. FML :-( </rant> güzel cevap olsa
Peter Perháč

-1

Bir JSP sayfasını bir java kodu gibi kolayca hata ayıklayabilirsiniz:
"JSP dosyası bir Java sınıfının hatalarını ayıklamakla aynıdır, ancak çoğu özellik (İzle, Denetle, vb.) Uygulanmaz. Değişkenlerin değerlerini almanın tek yolu Değişkenler görünümüdür. "
Aşağıdaki linke bakınız:
https://www.laliluna.de/articles/posts/debugging-jsp-java-tutorial.html


4
Zaten iyi bir cevabı olan eski bir soruyu cevaplarken, daha önce ele alınmamış bir şeyi ele almak için lütfen cevabınıza daha fazla ayrıntı ekleyin.
gnat
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.