spring mvc rest webservice 在jboss 下 406 錯誤的解決方法
阿新 • • 發佈:2019-02-01
開發環境
IDE: Intellij
jdk:1.6
spring 4.1.2
jackson 1.9.7
jetty
servlet.xml
Version:0.9StartHTML:-1EndHTML:-1StartFragment:0000000111EndFragment:0000003256
<mvc:annotation-driven/> <context:component-scan base-package="com.lenovo.lmc.wh"> <!--<context:exclude-filter type="assignable" expression="com.hoo.client.RESTClient"/>--></context:component-scan> <!-- <bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"> <property name="messageConverters"> <list> <ref bean="mappingJacksonHttpMessageConverter" /> </list></property> </bean> <bean id="mappingJacksonHttpMessageConverter" class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />--> <!--<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" />--><bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
即沒有註釋掉的內容
問題:在local 環境 訪問如下的restful 的service 時沒問題,但是部署到jboss 下則出現406 錯誤
如果把返回型別修改成string則沒有問題,也就是說bean 轉換成jason 時出了錯
Version:0.9StartHTML:-1EndHTML:-1StartFragment:0000000111EndFragment:0000001134
@ResponseBody @RequestMapping( value = "{buildEntityNumber}/queryFeatureCodes.do" , method = RequestMethod.GET) public BeBean queryFeatureCodes(@PathVariable String buildEntityNumber ){ return featureCodesService.queryFeatureCodes(buildEntityNumber); }
解決方法:經過檢視,發現spring 4 已經不支援jackson 1 了,而是已經切換到了jackson2
因此需要升級jackson 的包到2的版本
Version:0.9StartHTML:-1EndHTML:-1StartFragment:0000000111EndFragment:0000000724
compile 'com.fasterxml.jackson.core:jackson-core:2.4.3' compile 'com.fasterxml.jackson.core:jackson-databind:2.4.3' compile 'com.fasterxml.jackson.core:jackson-annotations:2.4.3'