Ich versuche, Maven-Tests in Eclipse zu debuggen. Wenn ich Tests mit der maven-Option maven.surefire.debug starte, erhalte ich folgenden Fehler:
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
Es ist dasselbe, als ich versuchte, das Debug in meiner Shell zu starten.
Ich habe versucht, die maven-Option forkMode = never hinzuzufügen, und es wird ein weiterer Fehler mit meinem Schweißartefakt angezeigt, den ich ohne die Option maven.surefire.debug nicht habe:
Error loading Weld bootstrap, check that Weld is on the classpath
Weld ist jedoch auf meinem Klassenweg.
Irgendwelche Ideen ?
So beenden Sie einen Prozess, der einen Port überwacht:
Dieser Befehl sollte Prozesse auflisten, die an allen Ports empfangsbereit sind:
netstat -ano
Die Option -o
Zeigt die Prozess-ID an.
Wenn Sie ein * nix-System verwenden, können Sie mit den folgenden Funktionen etwas weiter verfeinern:
netstat -ano | grep <badport>
Wenn Sie die Prozess-ID haben, können Sie sie beenden mit:
Windows:
Andere:
kill <PID>
Gehe zu Debug configuration
-> Remote Java Application
-> Connect
, überprüfen Sie Allow termination of remote JVM
.
Wenn Sie dann den Server/Maven neu starten wollen, gehen Sie zu Debug perspective
und klicken Sie auf das read / stop
Taste.....
Normalerweise besteht das Problem darin, dass ein anderer Prozess den Maven-Debug-Port 5005 geöffnet hält. Auf meinem Mac habe ich überprüft, welcher Prozess diesen Port offen hält, indem ich Folgendes ausführte:
lsof -i tcp:5005
Die Ausgabe war:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
Java 9089 my_user 7u IPv4 0xe88ec542fd4cffc9 0t0 TCP *:avt-profile-2 (LISTEN)
Und dann habe ich den Prozess beendet:
kill -9 9089
Wenn Sie möchten, dass diese beiden Prozesse zusammen ausgeführt werden können, müssen Sie den Maven-Debug-Port von mindestens einem von ihnen ändern. Siehe: http://maven.Apache.org/surefire/maven-surefire-plugin/examples/debugging.html .
Es ist eine lange Zeit die Frage gestellt wurde, aber ich hatte das gleiche Problem in letzter Zeit.
Öffnen Sie den Task-Manager
Beenden Sie den gesamten "Java.exe" -Prozess
Starten Sie das MVN-Debug neu
Hoffe, es wird helfen
Nur zur Dokumentation, ich hatte genau den gleichen Fehler, auf meinem lokalen ausgeführt:
FEHLER: Transportfehler 202: Bindung fehlgeschlagen: Adresse wird bereits verwendet FATAL ERROR in systemeigener Methode: JDWP Keine Transporte initialisiert, jvmtiError = AGENT_ERROR_TRANSPORT_INIT (197) FEHLER: JDWP Transport dt_socket konnte nicht initialisiert werden, TRANSPORT_INIT (510)
in meinem Fall war der Port nicht das Problem, sondern die Host-Datei. Die Lösung besteht darin, Folgendes hinzuzufügen/erneut hinzuzufügen/zu entfernen:
127.0.0.1 localhost
Die Konfigurationsdatei legt localhost
als Standard fest, daher wird als Lösung dieser Host hinzugefügt oder durch einen benutzerdefinierten Host ersetzt.
Die Lösung für mich war, die Haltepunkte des Projekts zu entfernen! Wenn Sie viele Zweige haben und kürzlich gewechselt haben, hat Eclipse manchmal einige Haltepunkte verloren.
Ich hatte letzte Woche ein ähnliches Problem, als das Debuggen mit Eclipse unmöglich wurde.
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]
Leider war nicht die Lösung, die ich möglicherweise online finden kann, hilfreich.
Das Problem stellte sich heraus, dass die Firewall irgendwie alle DLLs in meinem JRE-Bin entfernt hat ... (dt_socket.dll ging also komplett verloren).
Die Neuinstallation der gesamten JRE hat geholfen.