webentwicklung-frage-antwort-db.com.de

Maven Eclipse Debug "JDWP Transport dt_socket konnte nicht initialisiert werden, TRANSPORT_INIT (510)"

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 ?

31
Rémi Doolaeghe

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:

  • Öffnen Sie den Task-Manager und fügen Sie die PID-Spalte mit Ansicht> Spalten auswählen> PID hinzu
  • Suchen Sie den Prozess und klicken Sie mit der rechten Maustaste, um ihn zu beenden

Andere:

kill <PID>
27
lucrussell

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.....

5
Jasonw

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 .

4
ofirbt

Es ist eine lange Zeit die Frage gestellt wurde, aber ich hatte das gleiche Problem in letzter Zeit.

  1. Öffnen Sie den Task-Manager

  2. Beenden Sie den gesamten "Java.exe" -Prozess

  3. Starten Sie das MVN-Debug neu

Hoffe, es wird helfen

4
moa

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.

1
davidrl1000

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.

0
kks