Como controlar o manuseio de exceções jogadas dentro do JSP: Inclui inclui?
-
21-08-2019 - |
Pergunta
Eu tenho um JSP, que inclui outro JSP via <jsp:include>
. Eu também tenho (o que eu acho) uma configuração de página de erro padrão. O problema é que, quando ocorre uma exceção dentro do arquivo incluído, ele não "borbulha" para o JSP, incluindo o JSP. Em vez disso, ele insere a página de erro no meio do processamento do JSP incluído.
Estranhamente, ele nem insere a saída da página de erro na linha em que ocorreu o erro. Por exemplo, se eu causar uma exceção na linha 600 do JSP incluído, verei a saída das primeiras 300-400 linhas e veja a página de erro (no HTML em saída).
Em vez das primeiras 300-400 linhas do arquivo incluído que aparecem nesse caso, o que eu prefiro ver é que a saída da página incluída aparece, e apenas a saída da página de erro. Isso é possível ou há algum problema com o buffer de arquivos incluídos que o impede?
Ah, e eu já tentei definir "Flush = 'True'" na tag de inclusão, e tentei envolver tudo em Try/capturas no Incentr e incluse ... mas nada disso ajudou.
Solução
Usando um buffer grande (<%@ page buffer="1024kb" %>
) e flush="false"
Para o trabalho de incluir?
Outras dicas
O problema original "Bubble Up" pode depender do contêiner da web. Usamos o WebSphere 7 e funciona de uma maneira diferente das outras versões do WebSphere: as exceções da página incluída não são propagadas de volta ao JSP do Incentr. Quando nenhuma página de erro definida para a página incluída, a mensagem da exceção é impressa no fluxo de saída.
No caso do WebSphere 7, encontramos o parâmetro Followng que permite que as exceções borbulhem através do JSP: inclua a tag: com.ibm.ws.webcontainer.dispatcherrethrowSerror do FixPack 15. Aqui estão informações adicionais: http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=%2fcom.ibm.websphere.express.doc%2finfo%2fexp%2fae%2frweb_custom_props.html
No caso de outros contêineres da Web, ainda não experimentei esse problema.