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?
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
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.bat
ou 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.
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.
Ajoutez maintenant la configuration de l'environnement d'exécution ci-dessus à tomcat. Pour cette vérification ci-dessous capture d'écran.
Maintenant obtenu à L'onglet Arugments dans Modifier les propriétés de configuration de lancement comme indiqué dans la capture d'écran ci-dessous.
GoTo section arguments VM ajouter ces lignes.
- Xdebug
-agentlib:jdwp=transport=dt_socket,address=8000,serveur=y,suspendre=n
Maintenant, je dois déboguer le bouton disponible sur la barre d'outils eclipse.
Dans les configurations de débogage, trouvez "application Java distante" et double-cliquez dessus.
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.
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.
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.
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
- donnez n'importe quel nom pour la configuration.
- donnez le
project name
. - donnez le type de connexion comme
Standard(Socket Attach)
- hôte comme
localhost
- port comme
8000
(ou n'importe quel numéro de port, mais cela devrait être de même dans d'autres endroits aussi).
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..
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
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.
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"
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
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.
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
- 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"
- 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.
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:
- il vous conseille de créer un nouveau fichier bat avec le nom "setenv.chauve".
-
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"
Enfin, exécutez cela à cmd que: "catalina.chauve-souris jpda démarrer"
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.
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.
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"