4

これは簡単なはずですが、Tomcat6がRHEL6.1でサービスとして実行されている場合、デバッグを機能させることができません。

/etc/tomcat6/tomcat6.confに次の行を追加しました

JAVA_OPTS="${JAVA_OPTS} -Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

tomcat6サービスを再起動すると

service tomcat6 restart

コマンドラインは、Tomcatがシャットダウンして開始したことを示していますが、実行されておらず、catalina.outログを見ると表示されます。

ERROR: Cannot load this JVM TI agent twice, check your java command line for duplicate jdwp options.
Error occurred during initialization of VM
agent library failed to init: jdwp

Tomcat6サービスを再起動しようとすると、シャットダウンと起動の両方で失敗します。RHELを再起動する必要があります。

Tomcat6はデフォルトでデバッグモードで実行されていると思いましたが、tomcat6.confの行をコメントアウトし、netstatを使用して再起動すると、ポート8000​​またはTomcatで使用されているポートを使用しても何も表示されません。

Tomcat 6をサービスとして実行する場合、デバッグモードで実行できますか?

4

3 に答える 3

2

Catalina.shファイルで利用可能なポート番号8000を確認するだけです。また、同じポート番号8000で実行されているプロセスがあるかどうかを確認します。

同じポートで実行されているプロセスがある場合は、プロセスを停止してjpdaを実行します。

同じアドレスのenv変数を確認してください。catalina.shファイルシェルスクリプトは、ポート8000​​を使用して実行することを明確に示しています。

ポートアドレスを変更して.bashrcファイルに次のように設定する場合

エクスポートJPDA_ADDRESS=8009

コマンドを実行します

$ ./catalina.sh jpda run(通常の方法用)

セキュリティマネージャを使用したことがある場合は、

$ ./catalina.sh jpda run -security

Eclipseに移動します

->デバッグ構成に移動します

リモートデバッグ用のEclipseの構成

まず、デバッグするアプリケーションのソースコードを使用してプロジェクトを開くかインポートする必要があります。その後、Eclipseからデバッグをセットアップする必要があります。

1)ツールバーにある[デバッグ]ボタン(バグのあるボタン)の右側(上向きの矢印)をクリックし、[デバッグ構成...]またはメニューの[実行]>[デバッグ構成...]をクリックします。異なるデバッグ構成の新しいウィンドウが開きます。

デバッグ構成

2)左側のメニューで「リモートJavaアプリケーション」を選択し、「新規起動構成」ボタン(左上隅にフォルダーアイコンが付いたボタン)を押します。

新しいデバッグ構成

3)構成にTomcatインスタンスに対応するデータを入力します。

Project: The project we want to debug: it has to contain the source code for the application we want to debug.
Connection Type: Standard (Socket Attach).
Host: IP of the server in which is Tomcat installed.
Port: Port indicated to JVM in address parameter. Port 8000 in our example

Eclipseは何も表示しません。Eclipseには変更は表示されません。

必要な場所にブレークポイントをeclipseに設定し、tomcatでアプリケーションを実行します。

!!!!!! 正常にデバッグモードが機能します!!!!!!!!!

おめでとうございます!!!!!

サンパス_

于 2013-05-03T13:46:05.330 に答える
1

もう一度再起動すると解決したようです。RHELはポート8000​​でリッスンしており、リモートデバッガーを接続できます。

変。

于 2012-12-07T21:41:47.057 に答える
0

同じエラーが発生しました。理由はhttps://bugzilla.redhat.com/show_bug.cgi?id=899458でした。回避策は、次の行を削除すること/usr/sbin/tomcat6です。

# Get the tomcat config (use this for environment specific settings)
if [ -z "${TOMCAT_CFG}" ]; then
  TOMCAT_CFG="/etc/tomcat6/tomcat6.conf"
fi

if [ -r "$TOMCAT_CFG" ]; then
  . $TOMCAT_CFG
fi

あなたの問題はおそらく異なっていました(そうでなければ再起動が機能する理由はありません)が、エラーメッセージを検索している人々がそれを見つけることができるように私はこれを残しています。

于 2013-04-08T07:55:14.817 に答える