java 415错_SpringMVC @ResponseBody 415错误处理

用SpringMVC, 页面要使用Angularjs的$http请求Controller。 但总是失败,主要表现为以下两个异常为:

异常一:Java.lang.ClassNotFoundException: org.springframework.http.converter.json.MappingJacksonHttpMessageConverter

异常二:SpringMVC @ResponseBody 415错误处理

网上分析原因很多,但找了很久都没解决,基本是以下几类:

springmvc添加配置、注解;

pom.xml添加jackson包引用;

Ajax请求时没有设置Content-Type为application/json

发送的请求内容不要转成JSON对象,直接发送JSON字符串即可

这些其实都没错!!!

以下是我分析的解决步骤方法:

(1)springMVC配置文件开启注解

(2)添加springMVC需要添加如下配置。 (这个要注意spring版本,3.x和4.x配置不同)

具体可以查看spring-web的jar确认,哪个存在用哪个!

spring3.x配置:

application/json;charset=UTF-8

spring4.x配置:

application/json;charset=UTF-8

(3)pom.xml添加jackson依赖(这个要注意spring版本,3.x和4.x配置不同)

如果是spring 3.x,pom.xml添加如下配置

org.codehaus.jackson

jackson-core-lgpl

1.8.1

org.codehaus.jackson

jackson-mapper-lgpl

1.8.1

spring4.x, pom.xml添加如下配置

com.fasterxml.jackson.core

jackson-core

2.5.2

com.fasterxml.jackson.core

jackson-databind

2.5.2

这里要说明一下,spring3.x用的是org.codehaus.jackson的1.x版本,在maven资源库,已经不在维护,统一迁移到com.fasterxml.jackson,版本对应为2.x

(4)ajax请求要求

dataType 为 json

contentType 为 'application/json;charse=UTF-8'

data 转JSON字符串

jquery:

var data = {

userAccount: lock_username,

userPasswd:hex_md5(lock_password).toUpperCase()

}

$.ajax({

url : ctx + "/unlock.do",

type : "POST",

data : JSON.stringify(data),

dataType: 'json',

contentType:'application/json;charset=UTF-8',

success : function(result) {

console.log(result);

}

});

Angularjs:

var data = {

userAccount: lock_username,

userPasswd:hex_md5(lock_password).toUpperCase()

}

$http({

method : 'POST',

url : ctx + "/unlock.do",

headers: {

'Content-type': 'application/json;charset=UTF-8'

},

data: JSON.stringify(data),

}).then(function successCallback(response) {

}, function errorCallback(response) {

});

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值