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 ?
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:
Autres:
kill <PID>
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.....
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 .
Il y a longtemps que la question a été posée mais j'ai eu le même problème récemment.
Ouvrez le Gestionnaire des tâches
Tuez tous les processus "Java.exe"
Relancez le débogage mvn
J'espère que cela vous aidera
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é.
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é.