Jasper en el embarcadero lanza la excepción IllegalStateException en getOutputStream pero no en Tomcat

StackOverflow https://stackoverflow.com/questions/608352

  •  03-07-2019
  •  | 
  •  

Pregunta

Tengo una aplicación web que se ejecuta actualmente en Tomcat 5.5.25. Estoy intentando transferirlo a Jetty 6 para aprovechar el rápido tiempo de actualización de los cambios de jsp y UI, especialmente.

Dado que mis archivos JSP son compatibles con JSP 2.0, estoy ejecutando jetty under maven usando la configuración sugerida en el sitio web de maven jetty plugin. Esta configuración carga la versión 5.5.15 del compilador JSP de jaspe de Apache. (También disponible en el repositorio de Maven es 5.5.23, pero tiene el mismo resultado).

Bajo Jetty, mi página de inicio, que se configura mediante mosaicos, explota con IllegalStateException en ServletResponseWrapperInclude.getOutputStream (). Obviamente, bajo Tomcat no hace esto.

Estoy luchando para entender qué es lo que tienen nuestros mosaicos e incluye que eso causaría que el jaspe se queje en el embarcadero y no en Tomcat.

¿Fue útil?

Solución

Esto puede no ser una gran respuesta, pero descubrimos que este error ocurre cuando Tiles incluye un mosaico vacío.

Al revisar nuestras JSP de teselas maestras y eliminar las referencias a teselas vacías, solucionamos este problema.

Otros consejos

Wow - buen hallazgo! Otra solución con la que me topé es definir la inclusión del mosaico como una cadena vacía en lugar de una definición vacía / nula.

En otras palabras, si definí una ficha de la siguiente manera, presioné la excepción IllegalStateException que describe:

<definition name="login" extends="main.layout">
    <put name="title" value="Login" type="definition" />
    <put name="headinclude" value="" type="definition" />
    <put name="body" value="/WEB-INF/tiles/login.jsp" type="page" />
</definition>

Si yo, por otro lado, define el mosaico de la siguiente manera, la excepción desaparece:

<definition name="login" extends="main.layout">
    <put name="title" value="Login" type="definition" />
    <put name="headinclude" value="" type="string" />
    <put name="body" value="/WEB-INF/tiles/login.jsp" type="page" />
</definition>

Error extraño, solución extraña, ¡pero funciona para mí!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top