请求 415 unsupported media处理 , SpringMVC:@RequestBody

来源:互联网 发布:全国省市区县数据库 编辑:程序博客网 时间:2024/05/16 08:37
参考文档:http://blog.csdn.net/yixiaoping/article/details/45281721
客户端js内容:
b2cSearchList.queryProdInfoByPage=function(pageNums){var b2cWebSearchV2ReqVo = {};b2cWebSearchV2ReqVo.itemCode = $.trim($("#b2cWebItemCode").val());b2cWebSearchV2ReqVo.sort = $.trim($("#b2cWebV2Sort").val());b2cWebSearchV2ReqVo.currentPage = pageNums;$.ajax({url : appRoot + "/b2cList/queryData.do",type : 'post',cache : false,dataType : "json",data :  JSON.stringify(b2cWebSearchV2ReqVo),contentType : 'application/json;charset=utf-8',success : function(data) {if (!data || !data.Products || data.Products.length < 0 )) {return;}$(".product-list").html(doT.template($("#productList").html())({idata : data.Products}));// 懒加载setTimeout(function() {lazyLoad.lazyLoad();}, 200);},complete : function() {},error : function(XHR, errorMsg, e) {}});};
服务端代码:
@RequestMapping(value = "/b2cList/queryData.do", method = RequestMethod.POST)    public ModelAndView b2cKeySearchList(@RequestBody B2cWebSearchV2ReqVo req) {        ModelAndView mav = new ModelAndView(new MappingJackson2JsonView());        // B2cWebSearchRespVo search = SolrUtil.searchItemList(req, solrClient);        // 组装入参        B2cWebSearchReqVo reqTmp = new B2cWebSearchReqVo();        reqTmp.setCurrentPage(req.getCurrentPage());}

访问:(post)http://xxx.nnn.com:8080/b2cList/queryData.do?{"itemCode":"1","sort":"1","currentPage":2}&_=1494554353019
错误一:415 unsupported media
网上搜了一下,不支持媒体格式,于是在spring-servlet.xml里加如下内容
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">      <property name="messageConverters">          <list>              <ref bean="jsonHttpMessageConverter" />          </list>      </property>  </bean>    <bean id="jsonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">      <property name="supportedMediaTypes">          <list>              <value>application/json;charset=UTF-8</value>          </list>      </property>  </bean>

错误二:Java.lang.ClassNotFoundException: org.springframework.http.converter.json.MappingJacksonHttpMessageConverter
网上搜了下缺jar包,于是pom.xml加
<dependency>    <groupId>com.fasterxml.jackson.core</groupId>    <artifactId>jackson-databind</artifactId>    <version>2.7.0</version> </dependency>
注意,databind项目已经自动依赖了jackson-core与jackson-annotation,不需要额外重复引入
然后clean,重新启动就OK了
备注:项目是spring3.x版本


0 0