Общие страницы ошибок в веб-приложении под jboss - PullRequest
0 голосов
/ 09 июня 2010

Я не являюсь разработчиком jsp / maven / java, я пытаюсь настроить страницы ошибок для веб-приложения, не затрагивая конфигурацию jboss.

Вот как я пытаюсь это сделать: в моем web.xml я настроил

    <error-page>
        <error-code>*</error-code>
        <location>/actions/erreur</location>
    </error-page>

Здесь я сомневаюсь, что использование '*' работает, но это для примера. Затем в моем strut-config.xml

    <action path="/erreur" forward="erreurView" />

И, наконец, в моем файле tile-def.xml:

<!-- ERREURS  -->
<definition name="erreurView" extends=".formPremiereConnexionLayout">
    <put name="titrePage" value="Erreur"/>  
    <put name="body" value="/jsp/erreurs.jsp"/>
</definition>

Вы поняли, если у вас есть соответствующий ответ, спасибо за помощь.

И последнее: несмотря на то, что любой код ошибки сервера отправляет в общий вид ошибок, я хотел бы подробно описать ошибку в jsp. Я думаю, что скриптлет подойдет, еще раз, я понятия не имею, как это сделать. Благодарю.

1 Ответ

5 голосов
/ 09 июня 2010

Подстановочный знак не будет работать.Как многословно, вам действительно нужно определять коды статуса интереса отдельно.Например,

<error-page>
    <error-code>403</error-code>
    <location>/actions/erreur</location>
</error-page>
<error-page>
    <error-code>404</error-code>
    <location>/actions/erreur</location>
</error-page>
<error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <location>/actions/erreur</location>
</error-page>
...

Последний прослушивает все исключения / ошибки , которые может выдать сервер.Однако вы не можете быть уверены, будет ли он когда-либо отображаться на java.lang.Error.

На странице ошибки вы можете получить важные подробности из области запроса и заголовков, например:

<p>Request URI: <c:out value="${requestScope['javax.servlet.forward.request_uri']}" /></p>
<p>Exception type: <c:out value="${requestScope['javax.servlet.error.exception']}" /></p>
<p>Exception message: <c:out value="${requestScope['javax.servlet.error.message']}" /></p>
<p>HTTP status code: <c:out value="${requestScope['javax.servlet.error.status_code']}" /></p>
<p>HTTP user agent: <c:out value="${header['user-agent']}" /></p>

Если вы также хотите напечатать трассировку стека, вам нужно будет подготовить это внутри сервлета / beanclass, записав его в String и поместив его в область запроса, и, наконец, отобразить его в .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...