美文网首页java编程积累
java采坑之路-fastjson

java采坑之路-fastjson

作者: 风一样的存在 | 来源:发表于2020-06-10 18:37 被阅读0次

    在springboot2.0中使用fastjson做转换器出现如下的问题:

    java.lang.IllegalArgumentException: Content-Type cannot contain wildcard type '*'
        at org.springframework.util.Assert.isTrue(Assert.java:116) ~[spring-core-5.0.13.RELEASE.jar!/:5.0.13.RELEASE]
        at org.springframework.http.HttpHeaders.setContentType(HttpHeaders.java:861) ~[spring-web-5.0.13.RELEASE.jar!/:5.0.13.RELEASE]
        at org.springframework.http.converter.AbstractHttpMessageConverter.addDefaultHeaders(AbstractHttpMessageConverter.java:255) ~[spring-web-5.0.13.RELEASE.jar!/:5.0.13.RELEASE]
        at org.springframework.http.converter.AbstractHttpMessageConverter.write(AbstractHttpMessageConverter.java:210) ~[spring-web-5.0.13.RELEASE.jar!/:5.0.13.RELEASE]
        at com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter.write(FastJsonHttpMessageConverter.java:244) ~[fastjson-1.2.57.jar!/:?]
    

    解决办法:

        /**
         * 修改默认的json序列化方式
         * @return
         */
        @Bean
        public HttpMessageConverters fastJsonHttpMessageConverters() {
            // 1.定义一个converters转换消息的对象
            FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
            // 2.添加fastjson的配置信息,比如: 是否需要格式化返回的json数据
            FastJsonConfig fastJsonConfig = new FastJsonConfig();
            fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
            // 3.在converter中添加配置信息
            fastConverter.setFastJsonConfig(fastJsonConfig);
    
            List<MediaType> supportedMediaTypes = Lists.newArrayList();
            //从1.1.41升级到1.2.之后的版本必须配置,否则会报错
            supportedMediaTypes.add(MediaType.APPLICATION_JSON);
            supportedMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
            fastConverter.setSupportedMediaTypes(supportedMediaTypes);
    
            // 4.将converter赋值给HttpMessageConverter
            HttpMessageConverter<?> converter = fastConverter;
            // 5.返回HttpMessageConverters对象
            return new HttpMessageConverters(converter);
        }
    

    参考:
    1.https://my.oschina.net/u/3747772/blog/3061925

    相关文章

      网友评论

        本文标题:java采坑之路-fastjson

        本文链接:https://www.haomeiwen.com/subject/jygptktx.html