4 votes

Comment puis-je utiliser la même page d'erreur pour plusieurs codes d'erreur dans Tomcat ?

J'essaie d'envoyer des messages d'erreur en texte clair à partir d'une servlet Tomcat, de sorte que les réponses puissent être présentées à l'utilisateur par l'application.

J'ai ce qui suit dans mon web.xml :

<error-page>
    <error-code>409</error-code>
    <location>/string_error.jsp</location>
</error-page>

Et string_error.jsp est le suivant :

${requestScope['javax.servlet.error.message']}

Cela me permet d'obtenir des messages d'erreur en texte clair pour une réponse 409. Cependant, j'aimerais utiliser cette même page pour toute erreur de l'ordre de 400/500, sans avoir à spécifier manuellement une nouvelle page de type <error-page> pour chacun d'eux. J'aurais supposé que <error-code>*</error-code> permettrait d'atteindre cet objectif, mais ce n'est pas le cas. Tomcat fournit-il un mécanisme pour faire cela ?

5voto

BalusC Points 498232

Si vous utilisez un conteneur Servlet 3.0, tel que Tomcat 7.0, vous pouvez simplement omettre l'option <error-code> (ou <exception-type> ) pour en faire une page d'erreur globale par défaut.

<error-page>
    <location>/string_error.jsp</location>
</error-page>

Depuis Servlet 3.0, ces éléments sont notamment facultatifs.

Cependant, si vous n'êtes pas encore sous Servlet 3.0, vous devrez le configurer au niveau du conteneur. Dans Tomcat 6.0 par exemple (qui est un conteneur Servlet 2.5), vous devez créer une classe de valve de rapport d'erreur personnalisée. Vous pouvez ensuite la spécifier comme errorReportValveClass de l'attribut <Host> élément en /conf/server.xml fichier.

Pour les autres conteneurs, consultez leur documentation.

1voto

nicholas.hauschild Points 21796

Vous pouvez ajouter error-page par l'un ou l'autre des éléments suivants error-code ou le (java) exception-type dans Tomcat. Je ne pense pas que cela puisse être généralisé comme vous l'avez suggéré.

<error-page>
    <error-code>404</error-code>
    <location>/404error.html</location>
</error-page>

<error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <location>/someJavaException.html</location>
</error-page>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X