Je comprends que cela est possible avec Ultimate Edition, mais existe-t-il un moyen de déboguer ces applications localement dans Community Edition?
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.
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 ).
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).
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.
Arrêtez votre Tomcat s’il est exécuté dans votre dossier bin Tomcat via: ./shutdown
ou ./catalina stop
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 pasCATALINA_OPTS
comme le suggèrent les commentaires dans catalina.sh, il est préférable d'utiliserJava_OPTS
. Cependant, il est possible d'utiliserCATALINA_OPTS
de manière similaire pour activer le débogage.
./catalina.sh start
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'
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
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.