Débogage à distance Tomcat avec Eclipse

Je n'arrive pas à déboguer l'application tomcat via Eclipse. J'ai mis

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

Et puis je lance bin/catalina.sh, où je vois la sortie disant qu'il écoute dt_socket sur port 8000. Mais chaque fois que j'essaie de me connecter au port 8000 dans Eclipse (en ajoutant une entrée dans le menu d'application java distant), il se plaint d'une connexion refusée. Des idées?

75
demandé sur Gopakumar N G 2010-10-01 03:49:38

14 réponses

Pouvez-vous vérifier si cela fonctionne?

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

catalina.sh jpda start
105
répondu Raghuram 2010-10-01 06:02:57

Dans le répertoire bin tomcat où se trouvecatalina.bat ou .sh (alias {CATALINA_BASE} / bin), edit (create if not there):

setenv.bat/.sh

Ajouter la ligne suivante:

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

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

Voir les commentaires dans catalina.batou catalina.sh.

Vous devrez peut-être ajuster la syntaxe pour votre environnement/situation particulier. Par exemple, si vous avez déjà défini CATALINA_OPTS, vous pouvez faire quelque chose comme ceci (dans un windows environnement):

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

Pour déboguer à partir D'Eclipse:

Exécuter- > déboguer les configurations...- >Application Java Distante - > 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.

44
répondu karl 2017-05-10 12:40:08

J'ai passé du temps là-dessus pour obtenir les bonnes informations.

Voici Donc les informations détaillées, étape par étape.

Environnement: Windows 7

Version TomCat: 7.0

IDE: Eclipse

Les Configurations à ajouter pour activer le débogage à distance avec dans tomcat sont

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

Je ne recommande pas la configuration ci-dessus pour un environnement non windows. Pour ajouter la configuration ci-dessus, double-cliquez sur le serveur tomcat qui sera disponible dans la vue serveur. Trouver l' ci-dessous la capture d'écran. entrez la description de l'image ici

Ajoutez maintenant la configuration de l'environnement d'exécution ci-dessus à tomcat. Pour cette vérification ci-dessous capture d'écran.

entrez la description de l'image ici

Maintenant obtenu à L'onglet Arugments dans Modifier les propriétés de configuration de lancement comme indiqué dans la capture d'écran ci-dessous.

entrez la description de l'image ici

GoTo section arguments VM ajouter ces lignes.

- Xdebug

-agentlib:jdwp=transport=dt_socket,address=8000,serveur=y,suspendre=n

entrez la description de l'image ici

Maintenant, je dois déboguer le bouton disponible sur la barre d'outils eclipse.

entrez la description de l'image ici

Dans les configurations de débogage, trouvez "application Java distante" et double-cliquez dessus.entrez la description de l'image ici

Dans le champ Nom, saisissez le nom que vous souhaitez.

Dans le champ projet à l'aide du bouton Parcourir, sélectionnez le projet que vous souhaitez effectuer un débogage à distance.

Le nom d'hôte n'est rien d'autre que l'adresse de l'hôte. Ici, je travaille localement, donc c'est"localhost".

Dernière colonne de Port la valeur doit être 8000. En dehors de nom et Les champs de texte du projet les deux autres colonnes Host et port seront remplis par eclipse lui-même si vous n'avez pas les mêmes valeurs que celles mentionnées. Vérifiez la capture D'écran pour plus d'informations.entrez la description de l'image ici

Maintenant, faites un clic droit sur TomcatServer dans la console du serveur, sélectionnez Ajouter et supprimer dans le menu contextuel. À partir de cette boîte de dialogue, vous pouvez ajouter le projet au serveur.

Maintenant, exécutez le Tomcat sever.

entrez la description de l'image ici

Exécutez maintenant L'outil de débogage TomCatDebugConfiguration.

Ouvrez le dernier navigateur interne ou externe et exécutez votre projet. Si le contrôle d'exécution a atteint les points d'arrêt, eclipse vous demandera de déboguer la perspective.

43
répondu Ravi MCA 2017-06-21 08:09:37

Dans le fichier catalina.bat veuillez modifier ce qui suit.

  • É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écution de 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 le project name.
    3. donnez le type de connexion comme Standard(Socket Attach)
    4. hôte comme localhost
    5. port comme 8000 (ou n'importe quel numéro de port, mais cela devrait être de même dans d'autres endroits aussi).
28
répondu RAJ 2018-05-03 08:43:29

Permettez-moi de partager le moyen simple d'activer le mode de débogage à distance dans tomcat7 avec eclipse (Windows).

Étape 1: Ouvrir bin / démarrage.fichier bat
Étape 2: Ajoutez les lignes ci-dessous pour le débogage avec l'option JDPA (il devrait commencer la ligne du fichier)

    set JPDA_ADDRESS=8000  
    set JPDA_TRANSPORT=dt_socket  

Étape 3: dans le même fichier .. aller à la fin du fichier modifier cette ligne -

    call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%  
    instead of line  
    call "%EXECUTABLE%" start %CMD_LINE_ARGS%  

Étape 4: ensuite, il suffit d'exécuter bin>démarrage.chauve (alors maintenant, votre serveur tomcat a fonctionné en mode distant avec le port 8000).

Étape 5: Après cela permet de connecter votre projet source par Eclipse IDE avec le client distant.

Etape 6: dans L'IDE Eclipse, allez dans "Configuration de débogage"

Étape 7: cliquez sur "Application java distante" et cliquez sur "Nouveau"

Etape 8. dans l'onglet "connecter" définir la valeur du paramètre

   project= your source project  
   connection Type: standard (socket attached)   
   host: localhost  
   port:8000  

Etape 9: cliquez sur Appliquer et déboguer.

Enfin, votre client distant eclipse est connecté au serveur tomcat en cours d'exécution (mode debug).

J'espère que cette approche pourrait vous aider.

Cordialement..

5
répondu Mayen 2016-02-03 13:18:57

Modifier catalina.chauve-souris d'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 exécuter le mode de débogage par défaut lorsque vous exécutez le démarrage.MTD

call "%EXECUTABLE%" jpda start %CMD_LINE_ARGS%

Eclipse ou STS sélectionnez configuration de débogage clic droit - > nouveau

connection type -> Standard socket Attach
Port -> 8000 (as given in the CATALINA_OPTS)
Host -> localhost or IP address
4
répondu shermi 2015-06-23 10:15:58

Exécutez simplement ./catalina.sh jpda start (fourches) ou ./catalina.sh jpda run (ne fourche pas, pas mentionné dans l'aide). Toutes les options mentionnées ici par défaut à des valeurs saines.

3
répondu atamanroman 2015-07-29 08:35:23

Si tout ce qui précède ne fonctionne toujours pas, vous pouvez toujours ajouter au script

    set "JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
2
répondu shachar 2013-11-15 06:06:51

Dans tomcat 7, catalina.sh a ce code:

if [ "$1" = "jpda" ] ; then
  if [ -z "$JPDA_TRANSPORT" ]; then
    JPDA_TRANSPORT="dt_socket"
  fi
  if [ -z "$JPDA_ADDRESS" ]; then
    JPDA_ADDRESS="8000"
  fi
  if [ -z "$JPDA_SUSPEND" ]; then
    JPDA_SUSPEND="n"
  fi
  if [ -z "$JPDA_OPTS" ]; then
    JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"
  fi
  CATALINA_OPTS="$CATALINA_OPTS $JPDA_OPTS"
  shift
fi

Ii implique que vous pouvez configurer JPDA avec:

export JPDA_TRANSPORT=dt_socket
export JPDA_ADDRESS=8000
export JPDA_SUSPEND=n

Ou avec:

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

Et enfin utiliser:

catalina.sh jpda start

Cordialement

1
répondu Marcelo Salazar 2015-04-15 13:49:39

Je rencontrais ce problème lors de L'exécution de Tomcat à l'intérieur d'un conteneur Docker. Pour résoudre ce problème, assurez-vous d'ajouter l'argument '- p 8000:8000' dans votre commande docker run pour exposer ce port à votre machine locale. Vous aurez bien sûr besoin de la setenv.sh fichier dans votre ${CATALINA_HOME} / bin / dans votre conteneur ainsi.

1
répondu Cheen 2018-06-15 18:22:05

Modifier le démarrage.bat avec les CATALINA_OPTS et JPDA_OPTS n'a pas fonctionné pour moi mais en les ajoutant à catalina.bat a fait

  1. Modifier catalina.MTD

CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,serveur=y,suspendre=n"

JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,serveur=y,suspendre=n"

  1. modifier le démarrage.MTD pour inclure jpda

Changez l'appel "% EXECUTABLE% " start % CMD_LINE_ARGS% en

Appel "%EXÉCUTABLE%" jpda début %CMD_LINE_ARGS%

Configurez ensuite l'application java distante dans vos configurations de débogage dans Eclipse.

0
répondu David Stableforth 2016-09-15 17:49:43

Tout d'Abord, si vous ouvrez catalina.bat avec éditeur de texte, vous voyez que: "Ne définissez pas les variables dans ce script....."Donc, ne le changez jamais dans ce script, à la place, vous pouvez faire les étapes ci-dessous:

  1. il vous conseille de créer un nouveau fichier bat avec le nom "setenv.chauve".
  2. Ensuite, définissez 2 variables dans ce fichier bat telles que:

    Définir CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,serveur=y,suspendre=n"

    Ensemble JPDA_OPTS="-agentlib:jdwp=transport=dt_socket,address=8000,serveur=y,suspendre=n"

  3. Enfin, exécutez cela à cmd que: "catalina.chauve-souris jpda démarrer"

  4. Dans IDE, créez une configuration de débogage à distance et définissez host sur l'ip du serveur associé et le port sur 8000.

0
répondu Mustafa Kemal 2016-12-12 11:02:31

Pour la version apache-tomcat-8.5.28, faites ceci,

catalina.bat jpda start

Comme paramètres par défaut déjà configurés pour nous dans catalina.chauve-souris comme

Si ce n'est pas "% JPDA_OPTS% "= = "" goto gotjpdaopts set JPDA_OPTS=-agentlib:jdwp=transport=%JPDA_TRANSPORT%,address=%JPDA_ADDRESS%,server=y,suspend=%JPDA_SUSPEND%

Donc pas besoin d'une autre configuration. Et quand vous exécutez le commandement catalina.bat début jpda, vous pouvez voir le port de débogage 8000 est ouvert.

0
répondu Lyju I Edwinson 2018-03-14 00:20:04

Pour apache-tomcat-8.5.28

Modifier JDPA_OPTS comme ci-dessous puis courir comme catalina.bat jpda start

JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=$JPDA_ADDRESS,server=y,suspend=$JPDA_SUSPEND"
JPDA_OPTS="-agentlib:jdwp=transport=$JPDA_TRANSPORT,address=8000,server=y,suspend=$JPDA_SUSPEND"
-1
répondu Madhu K 2018-03-15 13:28:20