web-dev-qa-db-fra.com

Maven Eclipse Debug "Le transport JDWP dt_socket n'a pas réussi à s'initialiser, TRANSPORT_INIT (510)"

J'essaie de déboguer les tests Maven dans Eclipse. Lorsque je lance des tests avec l'option maven maven.surefire.debug, j'obtiens cette erreur:

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        

C'est la même chose lorsque j'ai essayé de lancer le débogage dans mon shell.

J'ai essayé d'ajouter l'option maven forkMode = never, et j'obtiens une autre erreur avec mon artefact de soudure que je n'ai pas sans l'option maven.surefire.debug:

Error loading Weld bootstrap, check that Weld is on the classpath

Cependant, Weld est sur mon chemin de classe.

Des idées ?

31
Rémi Doolaeghe

Pour tuer un processus écoutant sur un port:

Cette commande doit répertorier les processus d'écoute sur tous les ports:

netstat -ano

Le -o L'option affichera l'ID du processus.

Si vous utilisez un système * nix, vous pouvez affiner un peu plus avec:

netstat -ano | grep <badport> 

Lorsque vous avez l'ID de processus, vous pouvez le terminer avec:

Les fenêtres:

  • Ouvrez le Gestionnaire des tâches, ajoutez la colonne PID avec Affichage> Sélectionner les colonnes> PID
  • Trouvez le processus et faites un clic droit pour le tuer

Autres:

kill <PID>
27
lucrussell

Aller à Debug configuration -> Remote Java Application -> Connect onglet, cochez Allow termination of remote JVM.

Ensuite, lorsque vous allez redémarrer le serveur/maven, accédez à Debug perspective et cliquez sur read / stop bouton.....

5
Jasonw

Habituellement, le problème est qu'un autre processus maintient le port de débogage Maven 5005 ouvert. Sur mon Mac, j'ai vérifié quel processus maintient ce port ouvert en exécutant:

lsof -i tcp:5005

Le résultat était:

COMMAND  PID        USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
Java    9089 my_user    7u  IPv4 0xe88ec542fd4cffc9      0t0  TCP *:avt-profile-2 (LISTEN)

Et puis j'ai tué le processus:

kill -9 9089

Si vous voulez que ces 2 processus puissent s'exécuter ensemble, vous devrez changer le port de débogage Maven d'au moins l'un d'entre eux. Voir: http://maven.Apache.org/surefire/maven-surefire-plugin/examples/debugging.html .

4
ofirbt

Il y a longtemps que la question a été posée mais j'ai eu le même problème récemment.

  1. Ouvrez le Gestionnaire des tâches

  2. Tuez tous les processus "Java.exe"

  3. Relancez le débogage mvn

J'espère que cela vous aidera

4
moa

Juste pour la documentation, j'ai eu exactement la même erreur, en cours d'exécution sur mon local:

ERREUR: erreur de transport 202: échec de la liaison: adresse déjà utilisée ERREUR FATALE dans la méthode native: JDWP Aucun transport initialisé, jvmtiError = AGENT_ERROR_TRANSPORT_INIT (197) ERREUR: JDWP Transport dt_socket n'a pas réussi à s'initialiser, TRANSPORT_INIT (510)

dans mon cas, le port n'était pas le problème, mais le fichier Host. La solution consiste à ajouter/rajouter/décommenter:

127.0.0.1 localhost

Le fichier de configuration définit localhost par défaut, donc une solution est d'ajouter cet hôte ou de le changer pour un personnalisé.

1
davidrl1000

La solution pour moi était de supprimer les points d'arrêt du projet! Si vous avez plusieurs branches et avez changé récemment, Eclipse a parfois perdu certains points d'arrêt.

Pour ajouter .. J'ai eu le même problème la semaine dernière, lorsque le débogage avec Eclipse était devenu impossible.

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]

Malheureusement, aucune des solutions que j'ai pu trouver en ligne n'a été utile.

Le problème s'est avéré que le pare-feu a en quelque sorte supprimé toutes les DLL de mon bac JRE ... (donc dt_socket.dll a complètement disparu).

La réinstallation de l'ensemble du JRE a aidé.

0
kks