J'ai défini une page d'erreur dans mon web.xml:JSP: Comment puis-je continuer à exécuter le code sur ma page d'erreur, même si je ne peux pas l'afficher?
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error.jsp</location>
</error-page>
Dans cette page d'erreur, j'ai une balise personnalisée que j'ai créé. Le gestionnaire de balises de cette balise me fait parvenir par e-mail la pile de toutes les erreurs survenues. Pour la plupart, cela fonctionne très bien.
Lorsque cela ne fonctionne pas, c'est que la sortie a déjà commencé à être envoyée au client au moment où l'erreur se produit. Dans ce cas, nous obtenons ceci:
SEVERE: Exception Processing ErrorPage[exceptionType=java.lang.Exception, location=/error.jsp]
java.lang.IllegalStateException
Je crois que cette erreur se produit parce que nous ne pouvons pas rediriger une requête vers la page d'erreur après la sortie a déjà commencé. La solution de contournement que j'ai utilisée est d'augmenter la taille de la mémoire tampon sur des pages JSP particulièrement volumineuses. Mais j'essaie d'écrire un gestionnaire d'erreur générique que je peux appliquer aux applications existantes, et je ne suis pas sûr qu'il soit possible de parcourir des centaines de pages JSP en s'assurant que leurs tampons sont assez grands.
Existe-t-il un moyen d'autoriser l'exécution de mon code de courrier électronique de pile dans ce cas, même si je ne peux pas afficher la page d'erreur sur le client?
Avez-vous déjà trouvé une solution? –
Trier par. Ma solution était d'abandonner JSP et d'utiliser Spring MVC. ;-) –