run realizar intellij idea hacer debug como breakpoint debugging jsp intellij-idea

debugging - realizar - Depuración de JSP en IntelliJ IDEA



debug intellij idea (6)

Asegúrese de que en el archivo conf / web.xml suppressSmap de tomcat no esté habilitado porque el depurador de IntelliJ necesita soporte de JSR45.

Debe tener un aspecto como este:

<init-param> <param-name>suppressSmap</param-name> <param-value>false</param-value> </init-param>

Desde https://tomcat.apache.org/tomcat-7.0-doc/jasper-howto.html

SuppressSmap: ¿Debería suprimirse la generación de información SMAP para la depuración JSR45? verdadero o falso, predeterminado falso.

¿Alguien sabe cómo depurar JSP en IntelliJ IDEA?

Cuando configuro un punto de interrupción en mis archivos JSP , esos puntos de interrupción nunca parecen tener efecto. El depurador nunca los golpea. IDEA parece pensar que los puntos de interrupción son válidos. Veo un punto rojo a la izquierda de la línea donde coloco mi punto de quiebre.

Leí en el foro de IntelliJ en esta publicación que los archivos JSP deben estar en web-inf para que la depuración funcione.

Pero luego también leí que los archivos JSP colocados en web-inf no serán accesibles directamente por el usuario.

No estoy seguro de quién tiene la razón.


De todos modos, debe iniciar el Tomcat en IDEA, no desde un Tomcat remoto.


Para la depuración de JSP en Intellij, hay algunas configuraciones que deben estar en orden. El hecho de que Intellij siempre le permita agregar un punto de interrupción en una línea JSP no implica necesariamente que haya configurado la depuración JSP. En lo que sigue, me refiero a la configuración de Intellij 8, en las versiones anteriores tendrá que hacer operaciones similares ya que los conceptos son los mismos.

Para habilitar la depuración de JSP debe hacer dos pasos: establecer una configuración de aplicación web en su proyecto y agregar una configuración de servidor de aplicación web.

Configuración de la aplicación web : para tener una depuración JSP, debe tener una faceta "web" en la estructura de su proyecto, apuntando al archivo web.xml correcto. Dependiendo del tipo de estructura de la aplicación web que esté utilizando, la faceta puede ser detectada automáticamente por Intellij (vaya de todos modos para verificar lo que ha hecho) o puede que tenga que agregarla manualmente. Recuerde en la pestaña "Configuración de compilación de Java EE" que se establezca como "Crear un directorio explosionado de facetas web"; si no quiere duplicaciones, un truco es simplemente habilitarlo y señalar su directorio ya existente.

(Web) Servidor de aplicaciones : vaya a "editar configuraciones", allí debe agregar a las configuraciones un servidor de aplicaciones, no ejecutar el servidor web como una aplicación como cualquier otra. De esta forma, Intellij podrá interceptar llamadas JSP. En la lista de servidores de aplicaciones, debe tener el predeterminado, Tomcat. Asegúrese de tener una instalación local de Tomcat antes de hacer esto, y apúntelo cuando agregue el servidor de aplicaciones web. El último truco es ir a la pestaña "Despliegue" y seleccionar como "Fuente de implementación" la misma faceta que configuró en el paso anterior.

La misma configuración funciona si quiere usar otro servidor de aplicaciones web, lo probé con las últimas versiones de Caucho Resin y la depuración funciona bien (no con las combinaciones previas de Intellij y Resina).

Si no ve Tomcat en la lista de servidores de aplicaciones disponibles para agregar, verifique los complementos en el panel general de configuración de Intellij: en las versiones más recientes, cada vez más funcionalidades se han "enchufado", e incluso funciones muy básicas pueden estar deshabilitadas. ; este complemento se llama "Integración de Tomcat".

Finalmente, seguramente no es cierto que los archivos JSP deben estar bajo WEB-INF para estar bajo depuración.


Para la depuración remota de JSP (que también se aplica a localhost ), deberá instalar el complemento de soporte JSR45.. Tenga en cuenta que esta característica solo se admite en la edición Ultimate de IntelliJ, no en la edición de comunidad.

  1. Vaya a Preferencias > Complementos , busque el complemento JSR45 y habilítelo.
  2. Cree una configuración de ejecución: Ejecutar > Ejecutar configuración > haga clic en el botón + y seleccione Servidor compatible con JSR45 y, a continuación, en el cuadro de diálogo que se abre, seleccione Remoto y configure el host y el puerto del servidor. Configuración de Application Server: Generic debería funcionar bien.
  3. Asegúrese de configurar el puerto correcto en Inicio / Configuración > Depurar .

  4. Abra la configuración del módulo ( F3 en la carpeta del proyecto) y agregue una Faceta web en Facetas , y en Directorios de recursos web especifique su carpeta raíz JSP.

  5. Haga clic en el botón Configuración ... y seleccione las carpetas con los beans, las clases y las bibliotecas de las que dependen sus JSP.

Ahora los puntos de interrupción JSP deberían funcionar, siempre que haya iniciado su servidor con los argumentos de depuración adecuados .


Para la segunda parte de su pregunta ("el usuario no puede acceder directamente a los archivos jsp ubicados en web-inf") es correcto. Para permitir que los usuarios accedan a los archivos JSP en la carpeta WEB-INF, las entradas de servlet-mapeo y servlets deben realizarse en el archivo web.xml para cada página JSP.


Si está utilizando el depurador Intellij puede obtener el valor de un atributo individual colocando un punto de interrupción dentro de JSP y evaluando la expresión this.jspContext.request.getAttribute("attributeName") .

Tenga en cuenta que esto puede devolver un tipo de objeto Java, y puede que tenga que convertirlo al tipo correcto. Además, si ejecuta un Tomcat remoto, IDEA no alcanzará ningún punto de interrupción, por lo que deberá iniciar Tomcat en modo de depuración desde IDEA.