EclipseでMavenテストをデバッグしようとしています。 mavenオプションmaven.surefire.debugを使用してテストを起動すると、次のエラーが表示されます。
ERROR: transport error 202: bind failed: Address already in use
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690]
/bin/sh: line 1: 27500 Abort trap
シェルでtu launch debugを試したときも同じです。
私はmavenオプションforkMode = neverを追加しようとしましたが、maven.surefire.debugオプションなしでは持っていない溶接アーチファクトで別のエラーが発生します。
Error loading Weld bootstrap, check that Weld is on the classpath
ただし、Weldはクラスパス上にあります。
何か案は ?
ポートでリッスンしているプロセスを強制終了するには:
このコマンドは、すべてのポートでリッスンしているプロセスをリストする必要があります。
netstat -ano
-o
オプションはプロセスIDを表示します。
* nixシステムを使用している場合は、次の方法でさらに改良できます。
netstat -ano | grep <badport>
プロセスIDを取得したら、次の方法で終了できます。
Windows:
その他:
kill <PID>
Debug configuration
-> Remote Java Application
-> Connect
タブに移動し、Allow termination of remote JVM
を確認します。
次に、サーバー/ Mavenを再起動するときに、Debug perspective
に移動し、read / stop
ボタンをクリックします。
通常問題は、別のプロセスがMavenデバッグポート5005を開いたままにすることです。私のMacでは、次のコマンドを実行して、どのポートがこのポートを開いたままにしているかを確認しました。
lsof -i tcp:5005
出力は次のとおりです。
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Java 9089 my_user 7u IPv4 0xe88ec542fd4cffc9 0t0 TCP *:avt-profile-2 (LISTEN)
そして、私はプロセスを殺しました:
kill -9 9089
これら2つのプロセスを一緒に実行できるようにするには、少なくとも1つのプロセスのMavenデバッグポートを変更する必要があります。参照: http://maven.Apache.org/surefire/maven-surefire-plugin/examples/debugging.html .
質問は長い間聞かれましたが、最近同じ問題がありました。
タスクマネージャーを開く
すべての「Java.exe」プロセスを強制終了します
Mvnデバッグを再起動します
それが役立つことを願っています
ドキュメントのためだけに、ローカルで実行しているのとまったく同じエラーが発生しました。
エラー:トランスポートエラー202:バインドに失敗しました:ネイティブメソッドでアドレスがすでに使用されています致命的なエラー:JDWP初期化されたトランスポートがありません、jvmtiError = AGENT_ERROR_TRANSPORT_INIT(197)エラー:JDWPトランスポートdt_socketが初期化に失敗しました、TRANSPORT_INIT(510)
私の場合、ポートは問題ではなく、ホストファイルでした。解決策は、追加/再追加/コメント解除することです。
127.0.0.1 localhost
構成ファイルはlocalhost
をデフォルトとして設定するため、ソリューションはそのホストを追加するか、カスタムホストに変更します。
私の解決策は、プロジェクトのブレークポイントを削除することでした!多くのブランチがあり、最近変更された場合、Eclipseはいくつかのブレークポイントを失います。
付け加えると、先週、Eclipseを使用したデバッグが不可能になったときに、同様の問題がありました。
FATAL ERROR in native method: JDWP No transports initialized,
jvmtiError=AGENT_ERROR_TRANSPORT_LOAD(196)
ERROR: transport library not found: dt_socket
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_LOAD(509)
JDWP exit error AGENT_ERROR_TRANSPORT_LOAD(196): No transports initialized [../../../src/share/back/debugInit.c:690]
残念ながら、おそらくオンラインで見つけることができる解決策は役に立ちました。
問題は、ファイアウォールが何らかの形でJRE binのすべてのdllを削除したことであることが判明しました(したがって、dt_socket.dllは完全に欠落しました)。
JRE全体の再インストールが役立ちました。