【Java】已經引入了 jackson 包,訪問服務依然出現406問題

目錄

一、現象

二、檢查流程

2.1 406 錯誤是什麼?

2.2 檢查是否引入了 jackson 包

2.3 後綴是否是html,若是html,不能返回json數據

三、解決方法


一、現象

訪問接口,提示406

 

二、檢查流程

2.1 406 錯誤是什麼?

HTTP 406 錯誤指無法接受 (Not acceptable)錯誤。

即當瀏覽器檢測到接收到的響應數據不是預期中客戶端要收到的數據時,會反饋帶有406錯誤的標頭。

由此可知,我們應該檢查服務器的響應格式是否正確

 

2.2 檢查是否引入了 jackson 包

可以在依賴中看到,我的確引入了 jackson 的相關依賴

 

2.3 後綴是否是html,若是html,不能返回json數據

問題很明顯了,由於瀏覽器認爲訪問html頁面,應該返回的就是字符串,而不能是 json 格式數據。

 

三、解決方法

通過修改 web.xml 配置,增加一個針對 *.action 請求的匹配規則

<!-- springmvc的前端控制器 -->
<servlet>
    <servlet-name>aa-portal</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- contextConfigLocation不是必須的, 如果不配置contextConfigLocation, springmvc的配置文件默認在:WEB-INF/servlet的name+"-servlet.xml" -->
    <init-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:spring/springmvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>aa-portal</servlet-name>
    <!--    僞靜態化    -->
    <url-pattern>*.html</url-pattern>
</servlet-mapping>
<!--    增加匹配規則    -->
<servlet-mapping>
    <servlet-name>aa-portal</servlet-name>
    <url-pattern>*.action</url-pattern>
</servlet-mapping>

 

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