1

コンパイルされたJSPからのスタックトレースを取得して、中間サーブレットJavaファイルではなく実際のJSPファイルからの行番号を含めるにはどうすればよいですか?

Jetty 8を使用しています。現在、Jettyインスタンスをプログラムで取得しています。

(行番号のサポートに関心がある場合は、Eclipseをコーディングに使用します。JSR-45SMAPロジックを完全に取得していません。これは「サイドカー」ファイルですか、それとも実際のクラスファイルにこの情報を入れていますか。 ?)

デバッグ、ブレークポイントは機能しますか、再。JSP?

4

1 に答える 1

3

更新:2017年6月

Jetty9はGlassfishJSPを使用しなくなりました。

Apache Jasper JSPを使用し、以下と同じルールが適用されます。

元の回答

Jettyは、GlassfishプロジェクトのJspServletを使用して、すべてのJSP処理を管理します。

JspServlet(${jetty.home}/etc/webdefault.xml目次を参照)には、役立つ可能性のある3つのinitパラメーターがあります。

  • 「keepgenerated」(ブール値)true
  • 「開発」(ブール値)true
  • "classdebuginfo"(ブール値)true

これらの開発時間設定をすべてtrueに設定すると、より多くの情報が表示されます。また、参照する中間ソースファイルもあります。この生成されたソースファイルには、コメントアウトされたjspソースの行が含まれ、結果のJavaソースファイルを使用して、jspのどの行で例外が発生したかを逆参照することもできます。

また、GlassfishのJspServletは、基盤となるロギングインフラストラクチャとしてjava.util.loggingも使用していることに注意してください。JspUsageのすべての詳細(jsp行番号を含む)を確認するには、FINESTレベルで「org.apache.jasper」パッケージスペースのjava.util.loggingを設定してみてください。

于 2012-01-10T15:00:26.110 に答える