Nic*_*Eng 5 error-handling spring
我想处理像“不支持请求方法 POST/GET”这样的异常来响应 JSON 格式,而不是错误页面。
原因是 abc.com/api/ 之后的任何 url 都是我的 API url,但我不知道如何捕获和处理上述异常。
这是我的控制器:
@RequestMapping(value="/register", method=RequestMethod.POST)
@ResponseBody
public ApiBaseResp register(@RequestBody RegisterReq req , HttpServletResponse res) throws RestException {
}
Run Code Online (Sandbox Code Playgroud)
当我使用 GET 调用 abc.com/api/register 时,它会抛出错误页面,指出“不支持请求方法 GET”,这是正确的。但我想要一个更友好的 JSON 格式的错误处理程序,例如:
{
"code" : "99",
"message" : "Request MEthod GET not supported"
}
Run Code Online (Sandbox Code Playgroud)
这是我的 abc-servlet.xml:
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver"
p:order="1" />
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver" p:order="2">
<property name="exceptionMappings">
<props>
<prop
key="com.abc.framework.common.exception.NoPrivilegeException">noPrivilege</prop>
<prop key="java.lang.Exception">error</prop>
<prop
key="com.abc.framework.common.exception.CustomGenericException">customError</prop>
</props>
</property>
</bean>
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索但似乎无法找到解决方案。也许我的关键字不正确。直接说到这里,希望有经验的人能解决我的问题。提前致谢。
我建议通过以下任一方式解决此问题。
创建一个,并通过此重写和方法interceptor传递请求,并且您可以根据您的选择准备响应。preHandlepostHandlepostHandle
或者您可以创建一个Filter,在那里您可以检查 HTTP 状态代码,然后修改response消息。
| 归档时间: |
|
| 查看次数: |
3627 次 |
| 最近记录: |