小编Nic*_*Eng的帖子

Spring如何处理Restful API的“不支持请求方法POST”错误

我想处理像“不支持请求方法 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)

我用谷歌搜索但似乎无法找到解决方案。也许我的关键字不正确。直接说到这里,希望有经验的人能解决我的问题。提前致谢。

error-handling spring

5
推荐指数
1
解决办法
3627
查看次数

标签 统计

error-handling ×1

spring ×1