」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 為什麼在向 Spring MVC 控制器發送 JSON 請求時收到 406(不可接受)錯誤?

為什麼在向 Spring MVC 控制器發送 JSON 請求時收到 406(不可接受)錯誤?

發佈於2024-11-07
瀏覽:617

Why am I getting a 406 (Not Acceptable) Error When Sending a JSON Request to My Spring MVC Controller?

Spring JSON 請求返回406(不可接受)

當嘗試向Spring MVC 控制器發送JSON 請求時,一些用戶遇到“ 406 不可接受」錯誤。此問題源自於請求的內容類型(“application/json”)與控制器的回應能力不符。

在 Spring MVC 中,控制器方法以「@ResponseBody」註解表示傳回值應以 JSON 形式寫入 HTTP 回應正文。但是,如果沒有在應用程式上下文中註冊正確的 HTTPMessageConverter,Spring 將無法將回傳值轉換為請求的格式。

此錯誤的常見原因是應用程式中缺少 Jackson 庫類別路徑。 Jackson 函式庫提供了 HTTPMessageConverter 負責將 Java 物件轉換為 JSON,反之亦然。

要解決此問題,請按照下列步驟操作:

  1. 確保以下Jackson 庫包含在應用程式中classpath:

    • jackson -core-asl.jar
    • jackson-mapper-asl.jar
  2. 如果您使用Spring 3.0或更高版本,請將下列行新增至spring -servlet.xml 設定檔中以啟用註解驅動的MVC設定:

  3. 從中刪除不必要的"headers=\ "Accept=/\"" 指令控制器方法註解。該指令強制 Spring 接受任何標頭,並可能導致相容性問題。

透過實現這些步驟,HTTPMessageConverter 將被註冊,Spring 將能夠按預期將控制器的返回值轉換為 JSON .

最新教學 更多>
  • 如何在 React 應用程式中嵌入帶有預覽的鏈接
    如何在 React 應用程式中嵌入帶有預覽的鏈接
    介紹 建立 Web 應用程式時,顯示連結內容的預覽通常很有用,就像社交媒體平台在共享 URL 時如何顯示連結預覽一樣。因此,除了 url 文字之外,您還可以在 url 旁邊顯示圖片和描述等資訊。 在這篇文章中,我將引導您在 React 應用程式中嵌入鏈接,同時使用 axios 和...
    程式設計 發佈於2024-11-08
  • 在 Sass 中使用 Mixin
    在 Sass 中使用 Mixin
    如果您深入研究前端开发世界,您很可能遇到过Sass(语法很棒的样式表)。 Sass 是一个强大的 CSS 预处理器,它通过提供 变量、嵌套、函数和 mixins 等功能来增强您的 CSS 工作流程。在这些功能中,mixins 作为游戏规则改变者脱颖而出,允许您有效地重用代码并保持样式表的一致性。 ...
    程式設計 發佈於2024-11-08
  • PHP 5.3 中的 ?: 運算子是什麼?
    PHP 5.3 中的 ?: 運算子是什麼?
    PHP 5.3 中的?: 運算子PHP 5.3 引入了?: 運算符,這是以前可用的條件運算符的壓縮形式。最初,條件運算子採用以下形式:expr ? val_if_true : val_if_false在 PHP 5.3 中,您可以省略中間部分,從而得到 ?: 語法。這相當於:expr ? expr ...
    程式設計 發佈於2024-11-08
  • 透過靜態分析、映像初始化和堆疊快照提高效能
    透過靜態分析、映像初始化和堆疊快照提高效能
    从整体结构到分布式系统世界,应用程序开发已经走过了漫长的道路。云计算和微服务架构的大规模采用极大地改变了服务器应用程序的创建和部署方式。我们现在拥有独立、单独部署的服务,而不是巨大的应用程序服务器 当需要时。 然而,可能影响这种平稳运行的新玩家可能是“冷启动”。当第一个请求在新产生的工作进程上处理时...
    程式設計 發佈於2024-11-08
  • 增強 React 清單渲染:乾淨且可重複使用的模式
    增強 React 清單渲染:乾淨且可重複使用的模式
    身為 React 開發人員,我們都遇過需要渲染資料清單的場景。雖然 .map() 方法效果很好,但每次渲染清單時重複相同的邏輯可能會讓人筋疲力盡,並導致程式碼重複。幸運的是,有一種更乾淨、可擴展的方法來處理這個問題,使用可重複使用元件、高階元件或自訂掛鉤。 在本文中,我將分享一種改進 React ...
    程式設計 發佈於2024-11-08
  • 前端與後端開發人員
    前端與後端開發人員
    海‧德夫, 在Web開發中,有兩個重要的角色:前端開發和後端開發。這兩個學科對於任何成功的 Web 專案都是必不可少的,但它們具有不同的角色、技能和職責。在本部落格中,我們將探索前端和後端開發的世界,比較它們的特點、所需的技能和挑戰。因此,無論您是經驗豐富的開發人員還是新手,請準備好探索前端與後端開...
    程式設計 發佈於2024-11-08
  • Pulsy 自述文件已更新
    Pulsy 自述文件已更新
    Pulsy - React 的轻量级状态管理库 Pulsy 是一个轻量级、灵活且易于使用的 React 状态管理库,提供持久性、中间件、记忆、计算和组合存储、时间旅行和 DevTools 集成等功能。它可以帮助您有效地管理 React 应用程序中的全局状态,而无需不必要的复杂性。 ...
    程式設計 發佈於2024-11-08
  • 從命令列運行時,如何解決 Maven 中的「NoClassDefFoundError」問題?
    從命令列運行時,如何解決 Maven 中的「NoClassDefFoundError」問題?
    透過Shade 外掛程式解決NoClassDefFoundError 的依賴關係第一次使用Maven 時,Eclipse 和命令列使用之間可能會出現不一致,原因是依賴管理。儘管在 Eclipse 中成功建立了 Maven 專案並新增了依賴項,但透過命令列執行專案可能會導致 NoClassDefFou...
    程式設計 發佈於2024-11-08
  • 如何在 Mac 上的 XAMPP 中安裝 PHP 的國際擴充?
    如何在 Mac 上的 XAMPP 中安裝 PHP 的國際擴充?
    Mac OS 上XAMPP 的PHP-intl 安裝若要解決在Mac 上使用XAMPP 時在php 中安裝intl 擴充功能的問題,請依照下列步驟操作: 確認PHP路徑:執行哪個php來決定使用的PHP路徑。對於 XAMPP,它應該是 /Applications/XAMPP/xamppfiles/b...
    程式設計 發佈於2024-11-08
  • 如何在 Python 中刪除清單元素的尾隨字元?
    如何在 Python 中刪除清單元素的尾隨字元?
    拆分​​清單元素在程式設計中,經常需要將清單元素拆分為多個元件。常見的情況涉及刪除尾隨字元。假設您有一個字串列表,其中每個元素都包含一個製表符 ('\t'),後面跟著其他文字。目標是消除此選項卡及其後面的所有內容,僅保留選項卡之前的文字。 考慮以下列表:my_list = ['ele...
    程式設計 發佈於2024-11-08
  • 以下是根據您的具體要求為您的文章提供的一些標題選項:

* 為什麼我的程式碼不起作用?理解 C++ 中的函數作用域
* C++ 中的函式作用域:為什麼我的 HelloWorld() F
    以下是根據您的具體要求為您的文章提供的一些標題選項: * 為什麼我的程式碼不起作用?理解 C++ 中的函數作用域 * C++ 中的函式作用域:為什麼我的 HelloWorld() F
    C 中函數宣告的範圍在您的程式碼中,您收到編譯錯誤,因為HelloWorld() 函式未在與調用它的範圍相同。讓我們深入研究函數作用域的概念並解決這個問題。 函數原型,也稱為聲明,在不提供函數定義的情況下告知編譯器函數的存在。在給定的程式碼中,您嘗試呼叫 HelloWorld(),而不是先在目前作用...
    程式設計 發佈於2024-11-08
  • 深入研究 Monty Hall 問題項目:模擬和理解機率概念
    深入研究 Monty Hall 問題項目:模擬和理解機率概念
    歡迎來到 Monty Hall 問題模擬計畫的迷人世界!這種實踐學習經驗將指導您創建基於網路的模擬,該模擬基於流行的遊戲節目場景演示有趣的機率謎題。 揭開蒙蒂霍爾問題之謎 蒙蒂·霍爾問題是一個著名的機率難題,幾十年來一直讓人們感到困惑和著迷。透過參與這個項目,您不僅有機會實現模擬,...
    程式設計 發佈於2024-11-08
  • 如何在 PHP 中驗證 MySQL DELETE 查詢是否成功?
    如何在 PHP 中驗證 MySQL DELETE 查詢是否成功?
    驗證 MySQL DELETE 查詢是否成功執行 DELETE 操作時,確定其成功執行至關重要。在 PHP 中,您可以採用各種方法來確定 DELETE 查詢是否成功。 MySQLi 和PDO使用MySQLi 或PDO、mysql_query() 和PDO::成功刪除查詢後,exec() 傳回不同的值...
    程式設計 發佈於2024-11-08
  • 何時應在 Python 中使用多個 if 與 If-elif 語句以獲得最佳效能?
    何時應在 Python 中使用多個 if 與 If-elif 語句以獲得最佳效能?
    Python 中的多個If 與Elif 語句在Python 中,在評估條件語句時,可以使用多個if 語句或單一if -elif 聲明。雖然兩種方法可以實現相同的結果,但存在一些可能影響程式碼效率的關鍵差異。 在您提出的場景中:if text == 'sometext': print(text...
    程式設計 發佈於2024-11-08
  • 如何在 Node.js 中提前退出 forEach 迴圈?
    如何在 Node.js 中提前退出 forEach 迴圈?
    如何中斷Node.js forEach 循環在需要遞歸遍歷嵌套資料結構並對每個元素執行操作的情況下,您可以使用遞歸和forEach的組合。但是,在某些情況下,您可能需要提前退出 forEach 迴圈。 與 break 或 continue 語句的常規迴圈不同,forEach 缺乏停止迭代的內建機制。...
    程式設計 發佈於2024-11-08

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3