2011-12-08 8 views
25

Sto tentando di eseguire il debug dei test Maven in Eclipse. Quando lancio test con l'opzione di Maven maven.surefire.debug, ottengo questo errore:Maven Eclipse Debug "Impossibile inizializzare JDWP Transport dt_socket, TRANSPORT_INIT (510)"

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   

E 'lo stesso quando ho provato tu lancio di debug nel mio guscio.

ho cercato di aggiungere l'opzione Maven forkMode = mai, e ottengo un altro errore con il mio apporto manufatto che non ho senza l'opzione maven.surefire.debug:

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

Tuttavia, Weld è su il mio classpath.

Qualche idea?

+3

Ho trovato la soluzione. La porta che ho usato per il debug era già in uso, probabilmente a causa di un bug di Maven. Quando si utilizza maven.surefire.debug, maven attende su una porta. L'ho ucciso una volta e poi ho tentato nuovamente di riavviare il test di prova. La soluzione è chiudere la porta aperta (ho riavviato la mia macchina, ma potrebbe esserci una soluzione meno radicale ...) –

+1

Puoi postare questa come tua soluzione e poi accettarla il giorno dopo. – Xonatron

risposta

23

per uccidere un processo di ascolto su una porta:

Questo comando dovrebbe elencare i processi in ascolto su tutte le porte:

netstat -ano 

L'opzione -o visualizza l'ID del processo.

Se stai usando un sistema * nix, è possibile affinare un po 'più avanti con:

netstat -ano | grep <badport> 

Quando si ha l'ID di processo, è possibile terminare con:

di Windows:

  • Aprire Task manager, aggiungere la colonna PID con Vista> Seleziona colonne> PID
  • Trovare il processo e fare clic destro per ucciderlo

Altri:

kill <PID> 
+0

Siamo spiacenti, ma l'opzione -o non è riconosciuta. Lavoro su MacOS 10.6. La soluzione sembra essere una buona idea, però. –

+0

Penso che potresti essere in grado di ottenere queste informazioni su OS X con 'sudo lsof -i -P' – lucrussell

+0

Hai ragione. sudo lsof -i -P | grep funziona correttamente. Grazie. –

4

Vai a Debug configuration ->Remote Java Application ->Connect scheda, controllare Allow termination of remote JVM.

Poi, quando si sta per riavviare il server/Maven, andare a Debug perspective e fare clic sul pulsante read/stop .....

0

Per aggiungere .. Ho avuto il problema simile la settimana scorsa, quando si utilizza il debug l'eclissi è stata resa impossibile.

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] 

Purtroppo la soluzione che non riesco a trovare online è stata utile.

Il problema è risultato essere che in qualche modo il firewall ha rimosso tutte le DLL nel mio cestino JRE ... (quindi dt_socket.dll è andato completamente mancante).

La reinstallazione dell'intero JRE ha aiutato.

4

C'è voluto molto tempo per porre la domanda, ma di recente ho avuto lo stesso problema.

  1. Aprire Task Manager

  2. Uccidere tutti i processi "java.exe"

  3. rilanciare il debug di mvn

auguriamo che contribuiscano

0

La soluzione a io stavo rimuovendo i punti di interruzione del progetto! Se hai molti rami e sono cambiati di recente, a volte Eclipse ha perso alcuni punti di interruzione.

Problemi correlati