javax.servlet.jsp.JspException
私のウェブサイトがレンダリングしようとしているjspファイルの1つ(survey.jsp
)。ただし、スタックトレースでは、jspで失敗した特定の行ではなく、失敗した行番号(survey_jsp.Java:787
)、コンパイルされたJSPファイルのようです。そのようなファイルはどこにありますか?そのため、この例外がスローされている行を知ることができますか?
ありがとう
編集:これらのファイルは/work
ディレクトリは、以下のコメントで提案されているようにTomcatを使用している場合。
コンパイルされたJSPファイルは、デフォルトで/work
Tomcat環境のフォルダー。サブフォルダーCatalina
があるはずです。このサブフォルダーには、デフォルトでlocalhost
に設定されているドメイン名を表すサブフォルダーがあります。次に、パッケージ階層を含むプロジェクトフォルダーがありますorg.Apache.jsp
その中にコンパイルされたJSPファイル。
Tomcat
|-- backup
|-- bin
|-- conf
|-- lib
|-- logs
|-- temp
|-- webapps
`-- work
`-- Catalina
`-- localhost
`-- projectname
`-- org
`-- Apache
`-- jsp
|-- survey_jsp.class
`-- survey_jsp.Java <--- here
具体的な問題とは無関係、通常はJspException
のスタックトレースに根本原因の部分があるはずです問題の実際の根本原因に関する詳細が含まれています。スタックトレースをもう少し読んでください。ところで、生のJavaコードをJSPファイルに置くことは 悪い習慣 と見なされることをご存知ですか?それは今直面している問題をデバッグするのを難しくします。
ページがコンパイルされなかった場合は、<Tomcat>/work/*
の下にあるはずです。完全なパスは環境によって異なります。見つからない場合は、Tomcatをデバッグモードで起動する必要があります。これは、コンパイルに失敗した.Java
ファイルを確実に保持します(Tomcat 7)。
私はIntellij
を使用してJavaEEを学習し、jspをサーブレットに変換するときにいくつかの機能を表示するために、ファイルも見つけなければなりません。
<Tomcat_home>/work/*
の下に見つかりませんでした。最後に、ファイルが~/.IntelliJIdea15/system/Tomcat/
folder(~/.IntelliJIdea15/system/Tomcat/
から表示されるツリー構造)の下にあることがわかりました!
Name related to project name
|-- conf
|-- logs
`-- work
`-- Catalina
`-- localhost
`-- projectname and type
`-- org
`-- Apache
`-- jsp
|-- survey_jsp.class
`-- survey_jsp.Java <--- here
それでもIntellijのホームフォルダーの下に見つからない場合は、使用してみてください。
find . | grep 'nameOfYourJsp_jsp.Java'
適切な親フォルダ内。
私の場合、コンパイルされたjspは
/var
|--cache
|-- Tomcat8
|--Catalina
|--localhost
|--projectname
|-- (etc...)
oracleドキュメントから
javax.servlet.jsp.JspException :: JSPエンジンに既知の一般的な例外。キャッチされなかったJspExceptionは、エラーページマシンを呼び出します。
私はコードでスクリプレットを使用するたびにこれを取得することさえしました
私のアドバイス:コードを簡単に開発できるように見えるかもしれませんが、スクリプレットを使用しないでください。私を信じて