在JavaWEB項目中,使用SSM架構,在項目啟動時出現如下錯誤:
Cannot find class [org.springframework.http.converter.json.MappingJacksonHttpMessageConverter] for bean with name ‘mappingJacksonHttpMessageConverter’ defined in class path resource [spring-mvc.xml]; nested exception is java.lang.ClassNotFoundException: org.springframework.http.converter.json.MappingJacksonHttpMessageConverter
檢視之後,出錯的地方為配置檔案中配置了一個bean,id為mappingJacksonHttpMessageConverter,class為
“org.springframework.http.converter.json.MappingJacksonHttpMessageConverter”,
糾結很久之後,發現其實就是和所用的的Spring架構的版本有關,這個要注意spring版本,3.x和4.x配置不同
解決辦法:
spring3.x是org.springframework.http.converter.json.MappingJacksonHttpMessageConverter
spring4.x是org.springframework.http.converter.json.MappingJackson2HttpMessageConverter
<!-- 避免IE執行AJAX時,傳回JSON出現下載下傳檔案 -->
<!-- 支援JSON資料格式 -->
<bean
class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<bean
class="org.springframework.http.converter.ByteArrayHttpMessageConverter" /><!-- 解析導出檔案byte流 -->
<ref bean="fastJsonHttpMessageConverter" />
<ref bean="mappingJacksonHttpMessageConverter" />
</list>
</property>
</bean>
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
</bean>
<!-- 使用fastJson來支援JSON資料格式 -->
<bean id="fastJsonHttpMessageConverter"
class="com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
<value>application/json</value>
</list>
</property>
<property name="features">
<list>
<value>WriteMapNullValue</value>
<value>QuoteFieldNames</value>
</list>
</property>
</bean>