JSPをデバッグするにはどうすればよいですか?


26

プロジェクトのJSPを編集しようとしていますが、サーバーから要求されたときに、JSPのどこかでNullPointerExceptionが発生します。

私のWebサーバー(JBoss)は例外を報告していますが、偽の行番号を教えてくれます。702行目で例外が発生したことが報告されていますが、JSPの長さは146行しかないため、どの行が窒息しているかを特定できません。

JSPのエラーをデバッグするための良いテクニックは何ですか?IDEとしてIntelliJ 9 Ultimateを使用しています。

ありがとう


1
Stackoverflow.comで質問されることがあります
Abimaran Kugathasan

1
OK。申し訳ありませんが、StackOverflow.comとProgrammers.StackExchange.comの違いについては完全にはわかりません。どの質問がどこに属するのかわかりません。programmers.stackexchangeのFAQを読みましたが、少しあいまいです。
アンパサンド

3
実際、これがStack Overflowで問題ないかはわかりません。かなり具体的ですが、具体的な詳細は十分ではありません(問題の性質上)。後は、このサイトのトピックにあるはずのデバッグ手法です。
ChrisF

jsp内にjspを含めましたか?これが行番号が増加する方法です。質問をstackoverflowに移動する必要があります
マイナス

1つの手法は、コンパイルファイルを見ることです:codeinventions.blogspot.com/2014/08/…–
Suresh Atta

回答:


29

あなたを助けることができるいくつかのオプションがあります:

  1. この答えは、実際には、具体的JSPをデバッグする方法について説明します。https://stackoverflow.com/questions/33739/jsp-debugging-in-intellij-idea。私はこれを試したことがないので、JSP、JBoss、IntelliJを使用していたときに次の3つの提案に従いました...

  2. JSPはクラスにコンパイルされることに注意してください。702行目とは、コンパイルされたクラスを意味します。がある場合test.jsp、クラス名はおそらくtest_jspであるため、JBoss作業ディレクトリを開いて検索しますtest_jsp.java(正しいディレクトリが見つかったら、ディレクトリ構造がJSPディレクトリ構造と一致することがわかります)。JSP例外が発生するたびに、行を非常に簡単に見つけることができ、通常はJSP内の対応する行に一致させます。

  3. ブレークポイントは、JSPから呼び出される Javaクラスでうまく機能します。したがって、JSPにあるJavaスクリプトコードをクラスに移動し、エントリポイントからデバッグすることができます。将来的には、ロジックの大部分がJSPから呼び出されるクラス内にあるようにロジックを再配置する習慣を作ることもできます。JSPはシンプルで簡単で、できれば例外をスローしません。とにかくこれは良い習慣です。

  4. さらに良いことに、すべての(または実質的にすべての)JavaロジックをJavaクラスに削除し、HTMLおよびJSPタグ用のJSPを残します。私はこれがすぐに実行可能ではないことを知っていますが、繰り返しますが、このような問題を回避することは長期的には良い考えです。


2
JSPからロジックを削除するための+1。:その他のモデル2(MVC)アーキテクチャで、JSP /サーブレットのベストプラクティスで見ることができ、この上oracle.com/technetwork/articles/javase/servlets-jsp-140445.html
bunglestink

ありがとう!オプション4は理想的ですが、私は同意しますが、このプロジェクトではビューとコントローラーを適切に分離できません。
アンパサンドレ

1
アイテム#2も+1。*_jsp.javaクラスがどこにあるかわかりませんでした。
スコッティセウス

2
それぞれが数千行のスクリプトレットを含む数千個のJSPを含むプロジェクトのJSPからすべてのロジックを削除します。FML :-( </ rant>いい答え
PeterPerháč16年

-1

Javaコードのように、JSPページを簡単にデバッグできます。
「JSPファイルはJavaクラスのデバッグと同じですが、ほとんどの機能(Watch、Inspectなど)は実装されていません。変数の値を取得する唯一の方法変数ビューです。」
以下のリンクを参照してください:https :
//www.laliluna.de/articles/posts/debugging-jsp-java-tutorial.html


4
すでに好評を博している古い質問に回答する場合は、回答に詳細を追加して、まだ説明されていないものに対処するようにしてください。
-gnat
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.