Jasper em cais lança IllegalStateException em getOutputStream mas não no Tomcat

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

  •  03-07-2019
  •  | 
  •  

Pergunta

Eu tenho uma aplicação web que está sendo executado sob Tomcat 5.5.25. Eu estou tentando porta-lo para Jetty 6 para aproveitar o tempo de atualização rápida para jsp e UI muda especialmente.

Uma vez que os meus arquivos JSP estão JSP 2.0 compatível, eu estou correndo cais sob maven usando a configuração sugerida no site maven cais plugin. Esta configuração cargas apache de Jasper JSP compilador versão 5.5.15. (Também disponível no repositório Maven é 5.5.23, mas tem o mesmo resultado.)

Sob cais, a minha home page, que é configurado usando telhas, explode com IllegalStateException em ServletResponseWrapperInclude.getOutputStream (). Obviamente sob Tomcat ele não fazer isso.

Eu estou lutando para entender o que é sobre nossas telhas e inclui que causaria jasper para reclamar no cais e não no Tomcat.

Foi útil?

Solução

Isto pode não ser muito de uma resposta, mas descobrimos que este erro acontece quando Tiles inclui um azulejo branco.

Ao passar por nossas JSPs azulejos mestre e remover referências às telhas vazias, fazemos este problema ir embora.

Outras dicas

Wow - bom encontrar! Outra solução Eu só tropeçou em é definir a telha incluir como uma cadeia vazia em vez de uma definição / null vazia.

Em outras palavras, se eu definir uma telha como segue, eu bati o IllegalStateException você descreve:

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

Se eu, por outro lado, definir a telha da seguinte forma, a exceção vai embora:

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

estranho bug, solução estranho, mas funciona para mim!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top