Jasper in jetty lève IllegalStateException sur getOutputStream mais pas sur Tomcat

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

  •  03-07-2019
  •  | 
  •  

Question

J'ai une application Web en cours d'exécution sous Tomcat 5.5.25. J'essaie de le porter sur Jetty 6 pour tirer parti du temps d'actualisation rapide, notamment pour les modifications de l'interface jsp et de l'interface utilisateur.

Étant donné que mes fichiers JSP sont compatibles JSP 2.0, je lance jetty sous maven en utilisant la configuration suggérée sur le site Web du plug-in maven jetty. Cette configuration charge la version 5.5.15 du compilateur JSP jasper d’apache. (Le repository maven est également disponible avec 5.5.23, mais le résultat est identique.)

Sous jetty, ma page d'accueil, configurée à l'aide de mosaïques, explose avec IllegalStateException dans ServletResponseWrapperInclude.getOutputStream (). Évidemment, sous Tomcat, cela ne se fait pas.

J'ai du mal à comprendre en quoi consistent nos carreaux et leurs motifs, ce qui ferait que jasper se plaint en jetée et non en Tomcat.

Était-ce utile?

La solution

Cela n’est peut-être pas vraiment une réponse, mais nous avons découvert que cette erreur se produisait lorsque Tiles incluait une tuile vide.

En parcourant nos fichiers JSP de mosaïques principales et en supprimant les références aux mosaïques vides, nous réglons ce problème.

Autres conseils

Wow - bonne trouvaille! Une autre solution que je viens de trouver est de définir l’inclusion de mosaïque comme une chaîne vide plutôt que comme une définition vide / nulle.

En d'autres termes, si je définis une tuile comme suit, je clique sur l'exception IllegalStateException que vous décrivez:

<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 par contre je définis la tuile comme suit, l'exception disparaît:

<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>

Bug étrange, solution étrange, mais cela fonctionne pour moi!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top