Spring JSON 要求回傳406(不可接受)
當嘗試向Spring MVC 控制器發送JSON 請求時,一些用戶遇到「 406 不可接受」錯誤。此問題源自於請求的內容類型(“application/json”)與控制器的回應能力不符。
在 Spring MVC 中,控制器方法以「@ResponseBody」註釋,以表示傳回值應以 JSON 形式寫入 HTTP 回應正文。但是,如果沒有在應用程式上下文中註冊正確的 HTTPMessageConverter,Spring 將無法將回傳值轉換為請求的格式。
此錯誤的常見原因是應用程式中缺少 Jackson 函式庫類別路徑。 Jackson 函式庫提供了 HTTPMessageConverter 負責將 Java 物件轉換為 JSON,反之亦然。
要解決此問題,請按照以下步驟操作:
確保以下Jackson 庫包含在應用程式類別路徑中:
如果您使用的是Spring 3.0 或更高版本,請將以下行加入到spring-servlet.xml 設定檔中以啟用註解驅動的MVC 配置:
<code class="xml"><mvc:annotation-driven /></code>
透過實現這些步驟,HTTPMessageConverter 將被註冊,Spring 將能夠按預期將控制器的回傳值轉換為 JSON .
以上是為什麼在向 Spring MVC 控制器發送 JSON 請求時收到 406(不可接受)錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!