通常情況下,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