通常情况下,spring将为路径不匹配的请求映射返回404响应,如果路径确实匹配但“Accept”头不匹配,则返回406。如何查看请求路径是否匹配,但是Accept没有处理全部处理程序?
我有一个默认的控制器,作为一个“全能”,通过返回Accept
ed格式的错误来处理休息故障。控制器的形式为:
@Controller
public class DefaultController {
@RequestMapping("/**")
public void unmappedRequest(HtpServletRequest req) {
throw new ResourceNotFoundException();
}
}
麻烦的是,如果我在这里做得到一个比赛,我不能告诉,如果它在其他地方匹配。我想将正确的错误返回给客户端,并告诉他们可以重试的Accept
可用类型。目前我所能做的就是抛出一个普通的ResourceNotFound
异常。
这是不是我可以在一个@Controller
做还是我需要诉诸编写某种过滤器链的这个?
FWIW我使用ReST exception handling pattern demonstrated by Stormpath