我为具有名称空间struts.xml
的特定软件包定义了/ws
,以描述应用程序的Web服务部分:
<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?