51

IntelliJ IDEAでデバッグJSPする方法を知っている人はいますか?

JSPファイルにブレークポイントを設定すると、それらのブレークポイントが有効にならないように見えます。デバッガーがそれらにヒットすることはありません。IDEAは、ブレークポイントが有効であると考えているようです。ブレークポイントを配置した行の左側に赤い点が配置されています。

この投稿のIntelliJフォーラムで、デバッグを機能させるにはJSPファイルがweb-infの下にある必要があることを読みました。

しかし、JSPweb-infの下に配置されたファイルには、ユーザーが直接アクセスできないことも読みました。

誰が本当に正しいのかわかりません。

4

6 に答える 6

35

Intellij で JSP をデバッグするには、いくつかの構成を整える必要があります。Intellij では常に JSP 行にブレークポイントを追加できるという事実は、必ずしも JSP デバッグを構成したことを意味するわけではありません。以下では、Intellij 8 の構成について説明します。以前のバージョンでは、概念が同じであるため、同様の操作を行う必要があります。

JSP デバッグを有効にするには、プロジェクトに Web アプリケーション構成を設定し、Web アプリケーション サーバー構成を追加するという 2 つの手順を実行する必要があります。

Web アプリケーションの構成: JSP デバッグを行うには、プロジェクト構造に「web」ファセットがあり、正しい web.xml ファイルを指している必要があります。使用している Web アプリケーション構造の種類によっては、ファセットが Intellij によって自動的に検出されるか (とにかく行って何をしたかを確認してください)、手動で追加する必要がある場合があります。「Java EE ビルド設定」タブで、「Web ファセット展開ディレクトリの作成」を有効に設定することを忘れないでください。重複したくない場合は、それを有効にして既存のディレクトリを指定するだけです。

(Web) アプリケーション サーバー: 「構成の編集」に移動します。構成にアプリケーション サーバーを追加する必要があります。他のアプリケーションのように Web サーバーをアプリケーションとして起動するのではありません。このようにして、Intellij は JSP 呼び出しをインターセプトできるようになります。アプリケーション サーバーのリストには、デフォルトの Tomcat が表示されます。これを行う前に、Tomcat がローカルにインストールされていることを確認し、Web アプリケーション サーバーを追加するときにそれを指定してください。最後のトリックは、[展開] タブに移動し、前の手順で構成したのと同じファセットを [展開元] として選択することです。

別の Web アプリケーション サーバーを使用する場合は、同じ構成で機能します。最新の Caucho Resin リリースでテストしたところ、デバッグは正常に機能しました (以前の Intellij と Resin の組み合わせでは機能しませんでした)。

追加できるアプリケーション サーバーのリストに Tomcat が表示されない場合は、一般的な Intellij 設定ペインでプラグインを確認してください。 ; このプラグインは「Tomcat 統合」と呼ばれます。

最後に、JSP ファイルをデバッグするために WEB-INF の下に置く必要があるというのは、決して真実ではありません。

于 2009-08-26T07:38:13.113 に答える
6

とにかく、リモートのTomcatからではなく、IDEAでTomcatを起動する必要があります。

于 2009-09-15T07:14:51.997 に答える
1

IntelliJ のデバッガーには JSR45 のサポートが必要なため、Tomcat のconf/web.xmlで suppressSmapが有効になっていないことを確認してください。

次のようになります。

<init-param>
  <param-name>suppressSmap</param-name>
  <param-value>false</param-value>
</init-param>

https://tomcat.apache.org/tomcat-7.0-doc/jasper-howto.htmlから

suppressSmap - JSR45 デバッグ用の SMAP 情報の生成を抑制すべきか? true または false。デフォルトは false。

于 2016-03-04T09:33:25.723 に答える
0

質問の 2 番目の部分 (「web-inf の下に配置された jsp ファイルは、ユーザーが直接アクセスすることはできません」) については正しいです。ユーザーが WEB-INF フォルダー内の JSP ファイルにアクセスできるようにするには、各 JSP ページの web.xml ファイル内でサーブレットおよびサーブレット マッピング エントリを作成する必要があります。

于 2008-08-29T02:44:07.717 に答える