Глобальное сопоставление исключений Struts дает общую ошибку HTTP 500 вместо результата пользовательского исключения - PullRequest
0 голосов
/ 06 сентября 2018

Я определил свой struts.xml следующим образом для конкретного пакета с пространством имен /ws, чтобы описать часть приложения в виде веб-службы:

<package name="app-ws" namespace="/ws" strict-method-invocation="false" extends="json-default">

    <interceptors>
        <interceptor name="wsInterceptor" class="myapp.WSInterceptor" />        
    </interceptors>

    <global-results>
        <result name="not.authorized">/WEB-INF/jsp/admin/not_authorized.jsp</result>
        <result name="exception">/WEB-INF/jsp/admin/exception.jsp</result>
    </global-results>       

    <global-exception-mappings>
        <exception-mapping exception="java.lang.Exception" result="exception" />
    </global-exception-mappings>

    <action name="runWS" method="runWS" class="myapp.WSAction">
        <interceptor-ref name="wsInterceptor" />
    </action>           

</package>

Затем в Java-методе, ответственном за это действие, которое, как я проверял, работает, я делаю это:

public String runWS() throws Exception {

    throw new Exception("test");

}

Я ожидаю, что Результатом будет моя пользовательская страница Исключений, потому что я определил (1) Глобальный результат и (2) Глобальные сопоставления исключений.

Но я получаю это:

HTTP Status 500 – Internal Server Error
Type Exception Report

Message test

Description The server encountered an unexpected condition that prevented it from fulfilling the request.

Exception

java.lang.Exception: test

Почему я получаю общую ошибку 500, несмотря на мое сопоставление исключений?

...