SpringMVC - 406 Not Acceptable異常的可能原因及解決方案

情況一

引起的原因:
由於設置了@ResponseBody,要把對象轉換成json格式,缺少轉換依賴的jar包,故報錯。

解決辦法:
加入依賴的jar,jackson-core-asl-x.x.x.jar,jackson-mapper-asl-x.x.x.jar問題解決。

原文請參考:http://jadethao.iteye.com/blog/1926525?utm_source=tuicool&utm_medium=referral

情況二

SpringMvc配置的url-pattern映射規則如下,所有的請求都必須以.html結尾:
這裏寫圖片描述

Controller:

@RequestMapping("user")
public class UserController {

    @Autowired
    private UserService userService;

    /**
     * 檢查用戶名是否可用
     * @param username
     * @param type
     * @return
     */
    @RequestMapping(value = "{param}/{type}")
    public ResponseEntity<Boolean> check(@PathVariable(value = "param") String param,
            @PathVariable(value = "type") Integer type) {
        try {
            Boolean result = this.userService.check(param, type);
            if (null == result) {
                return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(null);
            }
            // 爲了兼容js邏輯,將結果取反
            return ResponseEntity.ok(!result);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(null);
    }
}

請求結果:
這裏寫圖片描述

控制檯錯誤日誌:
這裏寫圖片描述

錯誤日誌和第一種情況是一樣的,但導包沒有問題。

引起原因:
SpringMVC規定:在SpringMVC中如果請求以html結尾,那麼就不會返回JSON數據

解決辦法:

添加url-pattern映射規則
這裏寫圖片描述

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章