2014-10-17 96 views
1

升級到Spring MVC的4.1.1後,當我使用JSON,它會出現HTTP 406錯誤。HTTP 406錯誤發生升級到Spring MVC的4.1使用JSON

的pom.xml

<!-- JSON Support --> 
<dependency> 
    <groupId>org.codehaus.jackson</groupId> 
    <artifactId>jackson-core-asl</artifactId> 
    <version>1.9.13</version> 
</dependency> 
<dependency> 
    <groupId>org.codehaus.jackson</groupId> 
    <artifactId>jackson-mapper-asl</artifactId> 
    <version>1.9.13</version> 
</dependency> 

Controller.java

@RequestMapping(value = "/login.action", method = RequestMethod.POST) 
public @ResponseBody HashMap<String, Boolean> loginAction(
     @RequestParam(value="username", required=true) String username, 
     @RequestParam(value="password", required=true) String password, 
     HttpServletRequest request, 
     HttpSession session, 
     Model model) { 
    String ipAddress = request.getRemoteAddr(); 
    HashMap<String, Boolean> result = getLoginResult(username, password); 
    logger.info(String.format("User: [Username=%s] tried to log in at %s", new Object[] {username, ipAddress})); 
    if (result.get("isSuccessful")) { 
     getSession(request, session, this.user); 
    } 
    return result; 
} 

的login.jsp

<script type="text/javascript"> 
    function doLoginAction(username, password) { 
     var postData = 'username=' + username + '&password=' + password; 
     $.ajax({ 
       type: 'POST', 
       url: '<c:url value="/accounts/login.action" />', 
       data: postData, 
       dataType: 'JSON', 
       success: function(result){ 
        console.log(result); 
        return processLoginResult(result); 
      } 
     }); 
    } 
</script> 

日誌消息將出正常放置在控制檯上。 而且代碼在Spring MVC 4.0.5中正常工作。

你知道如何解決它嗎?非常感謝。

回答

2

升級傑克遜的版本應該可以解決這個問題。

<dependency> 
    <groupId>com.fasterxml.jackson.core</groupId> 
    <artifactId>jackson-databind</artifactId> 
    <version>2.4.3</version> 
</dependency> 

查看Spring migration wiki on github

+0

你的意思是除去* org.codehaus.jackson *依賴,並添加* com.fasterxml.jackson.core *?這不適用於我的機器。它拋出模型類沒有發現異常。 – 2014-10-20 09:33:20

+0

我仍然認爲,第一步要解決這個問題正在更新的依賴。您可能需要在應用程序中更新導入語句。否則,你可以更新你的問題,並在那裏添加一個完整的堆棧跟蹤。 – 2014-10-20 11:40:46

相關問題