【发布时间】:2013-11-27 14:37:21
【问题描述】:
我有一个基于 Roo 的应用程序。
如果我的控制器抛出异常,我的应用程序将向最终用户呈现堆栈跟踪,但响应的状态代码为 200。
如何自定义此设置,以便任何未捕获的异常都会导致代码为 500 的响应?
【问题讨论】:
标签: exception-handling spring-roo http-response-codes
我有一个基于 Roo 的应用程序。
如果我的控制器抛出异常,我的应用程序将向最终用户呈现堆栈跟踪,但响应的状态代码为 200。
如何自定义此设置,以便任何未捕获的异常都会导致代码为 500 的响应?
【问题讨论】:
标签: exception-handling spring-roo http-response-codes
在您的webmvc-config.xml 中,在org.springframework.web.servlet.handler.SimpleMappingExceptionResolver 上设置defaultStatusCode 属性。
例子:
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver" p:defaultErrorView="uncaughtException">
<property name="exceptionMappings">
<props>
<prop key=".DataAccessException">dataAccessFailure</prop>
<prop key=".NoSuchRequestHandlingMethodException">resourceNotFound</prop>
<prop key=".TypeMismatchException">resourceNotFound</prop>
<prop key=".MissingServletRequestParameterException">resourceNotFound</prop>
</props>
</property>
<property name="defaultStatusCode">
<value>500</value>
</property>
</bean>
【讨论】: