spring升级处理MappingJackson2HttpMessageConverter
将一套公司的N年前的老代码,原始到直接是jar放入lib搭建的项目。首先第一步把项目改成maven版本,然后再从spring3.1 升级到 spring5,直接跳过4...
·
将一套公司的N年前的老代码,原始到直接是jar放入lib搭建的项目。首先第一步把项目改成maven版本,然后再从spring3.1 升级到 spring5,直接跳过4版本,期间不断填坑,将一些我还有印象的记录下来。
因为是SSM的项目,在使用Tomcat启动时,报错如下
19-Oct-2020 14:34:35.109 严重 [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.ApplicationContext.log StandardWrapper.Throwableorg.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.xxx.controller.IconController#0': Unsatisfied dependency expressed through field 'iconService'; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [org.springframework.http.converter.json.MappingJacksonHttpMessageConverter] for bean with name 'mappingJacksonHttpMessageConverter' defined in class path resource [springmvc/applicationContextMvc-front.xml]; nested exception is java.lang.ClassNotFoundException: org.springframework.http.converter.json.MappingJacksonHttpMessageConverterat org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:643)at
发现时MappingJacksonHttpMessageConverter的问题,这是因为spring3和spring5处理json的方式类不一致,实际上从spring4版本中就已经使用MappingJackson2HttpMessageConverter处理json了,这个配置和在接口方法上写@ResponseBody有关,该注解会将接口的返回值由ModelAndView转换为json字符串。而SSM框架中HttpMesssageConverter配置在xml中,所有编译的的过程中没有发现错误,在启动加载spring bean时,抛出异常。
所以只需要在对应是spring的配置文件中修改一下即可。
<!-- Json协议转换注解(@ResponseBody) -->
<bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
更多推荐
所有评论(0)