java - remote - tomcat debug port
¿Cómo depurar una aplicación web Tomcat 7.x/8.x localmente con la versión de la comunidad IntelliJ(gratuita) en Linux? (3)
Historia
Si ha trabajado con la edición de IntelliJ Ultimate, ha visto que es posible agregar una configuración de Tomcat donde puede tanto depurar como ejecutar su contenedor de Tomcat desde IntelliJ. Es posible obtener la versión de la Comunidad de IntelliJ para que haga lo mismo por ti con un poco de configuración adicional.
Conceptos relevantes
Tomcat JMX
Esta es una herramienta de monitoreo y administración remota para Tomcat. La configuración relacionada con JMX no es necesaria para habilitar su depuración. Aunque puede ser útil para fines de monitoreo a través de JConsole ( leer más ).
Diferentes puertos
La instancia de Tomcat ya debe estar en funcionamiento para que la versión de la Comunidad pueda adjuntarse al proceso de Tomcat. Mientras su Tomcat se ejecute en un puerto (el valor predeterminado de Tomcat es 8080), también necesita configurar otro puerto para que el depurador se adjunte a su versión de Tomcat (9999 en nuestro ejemplo).
Ajustes
Las configuraciones incluyen los cambios que necesita realizar en su Tomcat y las configuraciones que necesita hacer en su edición de la comunidad IntelliJ.
Por favor, siga el orden en los cambios.
Cambios relacionados con el lado de Tomcat
Detenga su Tomcat si se está ejecutando en su carpeta bin de Tomcat a través de:
./shutdown
o./catalina stop
Agregue la siguiente línea a su archivo catalina.sh bajo la declaración del conjunto JAVA_OPTS comentada:
JAVA_OPTS = "$ JAVA_OPTS -Xdebug -Xrunjdwp: transporte = dt_socket, servidor = y, suspender = n, dirección = 9999"
SUGERENCIA: He utilizado
JAVA_OPTS
noCATALINA_OPTS
ya que los comentarios en catalina.sh sugieren que es preferible usarJAVA_OPTS
. Sin embargo, es posible utilizarCATALINA_OPTS
de una manera similar para habilitar la depuración.
- Iniciar Tomcat:
./catalina.sh inicio
IntelliJ cambios relacionados
Resultado
Después de hacer clic en el botón de depuración en la edición de la Comunidad de IntelliJ, su sección de depuración se abrirá con la siguiente línea en su área de Consola:
Conectado a la máquina virtual de destino, dirección: ''localhost: 9999'', transporte: ''socket''
Publicaciones relevantes y enlaces
- Depuración remota con Tomcat (7) e Intellij ( aunque muy útil solo para Windows)
- IntelliJ y Tomcat .. ¿Cómo ..? (Engañando como es viejo)
- Configuraciones de la versión final y comunitaria de IntelliJ (Útil pero más complicado)
- IntelliJ IDEA 14.0.0 Web Help / Run / Debug Configuration: Tomcat (Un poco útil)
- Depuración con Tomcat e Intellij Community Edition (antiguo e incompleto)
Entiendo que esto es posible hacerlo con la Ultimate Edition, pero ¿hay alguna manera de depurar estas aplicaciones localmente en la Community Edition?
Para usuarios de Windows
poner
set "JAVA_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
línea en catalina.bat luego abra la línea de comando en el directorio tomcat y ejecute
catalina.bat run
También tenga en cuenta: tuve que elegir el puerto 5005 porque el predeterminado en las configuraciones de mi IntelliJ no era editable.
La respuesta de AmirHd es muy útil, pero tuve un problema más. Cuando cambié, el servidor JAVA_OPTS no se cerró como en esta publicación: Tomcat no se cerró. Resolví esto cambiando
JAVA_OPTS
a
CATALINA_OPTS