99 votes

Débogage à distance de Tomcat avec Eclipse

Je ne parviens pas à déboguer l'application Tomcat via Eclipse. J'ai défini

CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

et ensuite j'exécute bin/catalina.sh où je vois une sortie disant qu'il écoute pour dt_socket sur port 8000 . Mais quand j'essaie de me connecter au port 8000 dans Eclipse (en ajoutant une entrée dans le menu de l'application java distante), il se plaint d'un refus de connexion. Avez-vous une idée ?

0 votes

Pouvez-vous s'il vous plaît poster votre configuration distante utilisée dans eclipse.

144voto

Raghuram Points 26896

Pouvez-vous vérifier si cela fonctionne ?

JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"

catalina.sh jpda start

0 votes

Cela fait à peu près la même chose, mais je ne peux toujours pas me connecter à la VM. Eclipse ne donne en fait aucun résultat sur quoi que ce soit - la première fois que je sélectionne mon application distante, il n'y a pas d'erreur, mais je ne vois pas de réponse ou autre. La deuxième fois que j'essaie de déboguer cette application, l'erreur de connexion refusée se produit.

4 votes

En fait, le tien l'a réparé. Eclipse ne dit rien lorsqu'il réussit à se connecter, et se reconnecter une seconde fois provoque l'erreur. Donc ça fonctionnait, mais je n'ai pas remarqué.

21 votes

Ceci est pour ceux qui sont sous Windows OS : set JPDA_OPTS=-agentlib:jdwp=transport=dt_socket,address=8000,se‌​rver=y,suspend=n catalina.bat jpda start

50voto

karl Points 111

Dans le répertoire bin de tomcat où catalina.bat o .sh est trouvé (alias {CATALINA_BASE}/bin), modifiez-le (créez-le s'il n'est pas là) :

setenv.bat/.sh

Ajoutez la ligne suivante :

CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

C'est tout ce que vous avez à faire, vous n'avez pas besoin d'éditer le fichier catalina.bat (ou .sh ).

Voir les commentaires dans catalina.bat ou catalina.sh .

Il se peut que vous deviez adapter la syntaxe à votre environnement/situation particulière. Par exemple, si vous avez déjà défini CATALINA_OPTS, vous pouvez faire quelque chose comme ceci (dans un environnement Windows) :

set CATALINA_OPTS=%CATALINA_OPTS% -Xdebug -Xrunjdwp:transport=dt_socket,address=8088,server=y,suspend=n

Pour déboguer depuis Eclipse :

run->Debug configurations...->Application Java à distance->Nouveau

et spécifiez un nom, le projet que vous déboguez, ainsi que l'hôte tomcat et le port de débogage spécifiés ci-dessus.

0 votes

Cela fonctionne, vous devrez définir ce CATALINA_OPTS dans setenv.sh qui se trouve dans le répertoire tomcat/bin. Merci.

1 votes

Dans mon setenv.bat c'était JAVA_OPTS (tomcat 7)

0 votes

Bonjour Philip, j'ai ajouté quelques notes qui pourraient vous aider, sinon : quelles versions de os, tomcat et eclipse utilisez-vous ?

34voto

RAJ Points 151

Sur catalina.bat veuillez modifier le fichier ci-dessous.

  • Étape 1 : CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

  • Étape 2 : JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n"

  • Étape 3 : Exécutez Tomcat à partir de l'invite de commande comme ci-dessous : catalina.sh jpda start

  • Étape 4 : Ensuite, dans l'éclipse, créez une configuration de débogage.

    1. Donnez n'importe quel nom pour la configuration.
    2. Donnez à la project name .
    3. Donnez le type de connexion comme Standard(Socket Attach)
    4. hôte en tant que localhost
    5. comme 8000 (ou n'importe quel numéro de port, mais cela devrait être le même dans d'autres endroits aussi).

0 votes

J'ai trouvé CATALINA_OPTS dans les parties suivantes de catalina.bat, :doStop shift set ACTION=stop set CATALINA_OPTS= goto execCmd :doConfigTest shift set ACTION=configtest set CATALINA_OPTS= goto execCmd où le modifier ? Pouvez-vous simplement télécharger le contenu de votre catalina.bat ?

0 votes

On dirait que vous écrivez deux fois la même chose. J'ai sauté votre étape 1 - et ça marche. Pouvez-vous confirmer qu'il n'est pas nécessaire de modifier CATALINA_OPTS ?

0 votes

Pour la différence entre CATALINA_OPTS et JPDA_OPTS, voir : stackoverflow.com/questions/11222365/

4voto

user3409332 Points 21

Modifiez catalina.bat pour ajouter

set JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n" 

et

CATALINA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n

Facultatif : Ajoutez la ligne ci-dessous pour lancer le mode débogage par défaut lorsque vous exécutez startup.bat

call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%

Eclipse ou STS sélectionner debug configuration clic droit -> nouveau

connection type -> Standard socket Attach
Port -> 8000 (as given in the CATALINA_OPTS)
Host -> localhost or IP address

0 votes

Ces informations sont destinées à Windows, mais il se trouve que je suis sous Windows et que cela m'a aidé. Merci.

2voto

shachar Points 61

Si tout cela ne fonctionne pas, vous pouvez toujours ajouter au script.

    set "JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X