web-dev-qa-db-fra.com

Comment déboguer une application Web Tomcat 7.x/8.x localement avec la version IntelliJ Community (gratuite) sous Linux?

Je comprends que cela est possible avec Ultimate Edition, mais existe-t-il un moyen de déboguer ces applications localement dans Community Edition?

23
AmirHd

L'histoire

Si vous avez travaillé avec IntelliJ Ultimate Edition, vous avez compris qu'il était possible d'ajouter une configuration Tomcat permettant de déboguer ou d'exécuter votre conteneur Tomcat à partir d'IntelliJ. Il est possible de demander à votre version d'IntelliJ Community de faire la même chose pour vous avec quelques réglages supplémentaires.

Concepts pertinents

Tomcat JMX

Il s'agit d'un outil de surveillance et de gestion à distance pour Tomcat. Les paramètres liés à JMX ne sont pas nécessaires pour activer votre débogage. Bien que cela puisse être utile à des fins de suivi via JConsole ( en lire plus ).

Différents ports

Votre instance de Tomcat doit déjà être opérationnelle pour que la version communautaire puisse s’attacher au processus Tomcat. Bien que votre Tomcat fonctionne sur un port (Tomcat par défaut est 8080), vous devez également configurer un autre port pour que le débogueur se connecte à votre version en cours d'exécution de Tomcat (9999 dans notre exemple).

Réglages

Les paramètres incluent les modifications à apporter à votre Tomcat et les configurations à effectuer dans l'édition de votre communauté IntelliJ.

Veuillez suivre l'ordre dans les modifications.

Changements liés au côté Tomcat

  1. Arrêtez votre Tomcat s’il est exécuté dans votre dossier bin Tomcat via: ./shutdown ou ./catalina stop

  2. Ajoutez la ligne suivante à votre fichier catalina.sh sous l'instruction Java_OPTS set commentée:

    Java_OPTS = "$ Java_OPTS -Xdebug -Xrunjdwp: transport = dt_socket, serveur = y, suspendre = n, adresse = 9999"

CONSEIL: j'ai utilisé Java_OPTS et non pas CATALINA_OPTS comme le suggèrent les commentaires dans catalina.sh, il est préférable d'utiliser Java_OPTS. Cependant, il est possible d'utiliser CATALINA_OPTS de manière similaire pour activer le débogage.

  1. Démarrer Tomcat:

./catalina.sh start

Modifications liées à IntelliJ

enter image description here

Résultat

Après avoir cliqué sur le bouton de débogage dans votre édition IntelliJ Community, votre section de débogage devrait s'ouvrir avec la ligne suivante dans sa zone de console:

Connecté à la machine virtuelle cible, adresse: 'localhost: 9999', transport: 'socket'

Articles et liens pertinents

  1. Débogage distant avec Tomcat (7) et Intellij (Très utile pour Window uniquement)
  2. IntelliJ et Tomcat .. Howto ..? (trompeur car vieux)
  3. Configurations de version IntelliJ ultimate et community (Utile mais trop compliqué)
  4. IntelliJ IDEA 14.0.0 Aide sur le Web/Configurer/déboguer: Tomcat (plutôt utile)
  5. Débogage avec Tomcat et Intellij Community Edition (ancien et incomplet)
27
AmirHd

La réponse AmirHd est très utile, mais j'ai eu un autre problème. Quand j’ai changé, le serveur Java_OPTS n’était pas arrêté comme dans ce message: Tomcat n’a pas été arrêté J'ai résolu le problème en changeant 

Java_OPTS

à

CATALINA_OPTS
1
Amadeusz Iwanowski

Pour les utilisateurs Windows

mettre

set "Java_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"

ligne dans catalina.bat puis ouvrez la ligne de commande dans le répertoire Tomcat et exécutez

catalina.bat run

Notez également que je devais choisir le port 5005 car celui par défaut dans les paramètres de configuration de mon IntelliJ n'était pas modifiable.

0
JanBrus