SpringMVC4.3+fastjson1.2.39注意事项

在将SpringMVC从4.1.5.RELEASE升级到4.3.11.RELEASE,fastjson从1.2.5升级到1.2.39后,遇到Content-Type变为application/javascript的问题。原因是当对象继承自MappingFastJsonValue时,Spring MVC会将其视为Jsonp对象并调整Content-Type。深入分析发现,这是AbstractMessageConverterMethodProcessor中ResponseBodyAdvice的beforeBodyWrite方法导致的,特别是FastJsonpResponseBodyAdvice将对象封装成MappingFastJsonValue。为了解决此问题,需要避免加载FastJsonpResponseBodyAdvice,检查配置发现虽然spring-mvc.xml未扫描com.alibaba包,但applicationContext.xml中base-package为com,未过滤ControllerAdvice注解,需要进行相应调整。
摘要由CSDN通过智能技术生成

项目框架升级SpringMVC从4.1.5.RELEASE 升级到 4.3.11.RELEASE,fastjson从1.2.5升级到1.2.39。mvc配置

<!-- 自动扫描且只扫描@Controller -->
    <context:component-scan base-package="com.topstcn.web,com.cloudsmaker.em.web" use-default-filters="false">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
        <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice" />
    </context:component-scan>

    <mvc:annotation-driven content-negotiation-manager="contentNegotiationManager">
        <mvc:message-converters register-defaults="true">
            <!-- 将StringHttpMessageConverter的默认编码设为UTF-8 -->
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <constructor-arg value="UTF-8" />
            </bean>
            <!-- 将Jackson2HttpMessageConverter的默认格式化输出设为true <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> 
                <property name="prettyPrint&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值