spring mvc rest webservice 在jboss 下 406 错误的解决方法

来源:互联网 发布:汽车维保数据 违法 编辑:程序博客网 时间:2024/06/07 05:30

开发环境

   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'



0 0