2

ローカルマシンにJavaサーブレットフィルタを記述し、それをリモート(マシン)Webサーバーにデプロイしました。残念ながら、私のJSP/サーブレットエンジンであるApacheTomcat5.5によって報告されたエラーを追跡することは非常に困難で時間がかかりました。System.out.println(...)の記述、保存、デプロイ、JSPページのテストなどを続けることができません。時間がかかりすぎます。より良い、より速い方法がなければなりません。

サーブレットフィルタをリモートでデバッグすることは可能ですか?ローカルマシンにWebサーバーがないため、リモートデバッグについて質問しています。具体的には、リモートWebサーバーで発生しているように、サーブレットフィルターをオンザフライでデバッグする方法を探しています。そのような方法はありますか?

または、標準出力に書き込むよりも優れた方法はありますか。時間がかかりすぎて、Javaサーブレットフィルターをデバッグするためのより効率的な手段に違いないと思います。

注:私は開発にEclipseを使用しています。

助けてくれてありがとう。

アップデート

よろしくお願いします。ほんとうにありがとう。

JVM引数をTomcatに追加し、Tomcatを再起動しました。次に、Eclipseを搭載したマシンで、デバッグ構成に適切な情報を入力し、ブレークポイントを設定してテストしました。残念ながら、それは機能しませんでした。設定では、Socket Attachのままにして、[適用]をクリックしました。これで完了です。デバッグボタンを押すと、接続が拒否されたと表示されました。ポート8000​​と8001を試しましたが、どちらも機能しませんでした。

私がやろうとしていることを説明させてください、それはもっと良いかもしれません。

login.jspというログインページがあります。そのページには、アクション属性がservlet/LoginServletであるフォームがあります。ユーザーがフォームを送信すると、web.xmlファイルのクラスにマップされているservlet/LoginServletが呼び出されます。このクラスをcom.mysite.mypkg.classAと呼びましょう。クラスAでは、com.custom.mypkg.classBという別のクラスからメソッドを呼び出します。classBにブレークポイントを設定したい。

したがって、Eclipseデバッガーでlogin.jspページでURLを使用しても、URLは呼び出されません。サーブレット/ログインサーブレットを使用してみましたが、それも機能しませんでした。

URLには何を入力すればよいですか?または、このタイプのセットアップをデバッグしますか?

ありがとうございました。

アップデート2

私はここでこのサイトを見つけました。これはかなり包括的です。netstat -aを実行しましたが、デバッグポートがリストされていないことに気付きました。Windowsファイアウォールはオフになっていますが、ポートをブロックしている別の可能性があります。とにかく、ここにVM引数を配置しましたが、機能していません。

Tomcat構成

ありがとうございました。

4

3 に答える 3

2

デバッガーを起動したときに適切なコマンドラインオプションを指定した場合は、実行中のTomcatインスタンスにデバッガーをアタッチできます。

Tomcat開発Wikiは、これを行う方法を説明し、ボーナスとして、EclipseまたはNetBeansIDEからデバッグするようにセットアップする方法についての説明を提供します。

もちろん、実行中のTomcatにデバッガーを接続すると、セキュリティとパフォーマンスの両方に影響があります*

*およびOH&Sの問題-間違った種類のTomcatでこれを試した場合、ひどく傷が付く可能性があります...

于 2012-10-23T04:38:34.483 に答える
2

リモートデバッグの場合、サーバーをデバッグモードで起動する必要があります。それを行うにはいくつかの方法があります。1>を使用してサーバーを起動します

catinlina.bat jpda start

2>tomcatjavaプロセスにjvm引数を追加します

-Xdebug -Xrunjdwp:transport = dt_socket、address = 8000、server = y、suspend = n

サーバーがデバッグモードで起動したら、Eclipseでプロジェクトのパースペクティブを変更してデバッグする必要があります。次に、[実行]->[デバッグ構成]に移動します。リモートJavaアプリケーションをダブルクリックして、次のような詳細を入力します。

リモートIPアドレスデバッグポート。デフォルトのTomcatデバッグポートは8000です。jvm引数を使用する場合は、jvm引数に記載されているポートを使用してください。[適用]をクリックします

デバッグするJavaファイルに移動します。ソースコードにブレークポイントを設定し、テストするシナリオを実行します(ブラウザを使用するWebアプリケーションなど)

また、Javaファイルのコードがリモートサーバーにデプロイされたコードと同期していることを確認してください。

ハッピーデバッグ!!!

平和。サンケットラウト

于 2012-10-23T05:01:19.903 に答える
1

次のstarupパラメータを使用してリモートTomcatを実行する必要があります。

bin/catalina.bat jpda start

次に、ローカルマシンのEclipseで、[実行]->[デバッグ構成]->[リモートJavaアプリケーション]に移動し、ここで新しい構成を作成し、リモートマシンのIPをとして使用しhost、8000を使用しportます

この構成を実行し、Eclipseのブレークポイントを使用してデバッグします

于 2012-10-23T04:45:05.187 に答える