web-dev-qa-db-ja.com

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

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

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

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

ありがとう

28
ampersandre

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

  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クラスcalled)で正常に機能します。したがって、Java JSPにあるスクリプトコードをクラスに追加し、エントリポイントからデバッグします。将来的には、ロジックの大部分がクラスの中にあるようにロジックを再配置する習慣をつけることもできます。 JSPから呼び出されますが、JSPはシンプルで簡単で、例外をスローしないことを期待しています。

  4. さらに良いのは、すべて(または実質的にすべて)を削除するJavaロジックをJavaクラスに組み込み、HTMLおよびJSPタグにJSPを残すことです。これは適切ではないことを知っています。離れて、しかし、再び、このような問題を回避することは長期的には良い考えです。

30
Nicole