Java

解决ResponseBodyAdvice统一返回报`cannot be cast to java.lang.String`的问题

微信扫一扫,分享到朋友圈

解决ResponseBodyAdvice统一返回报`cannot be cast to java.lang.String`的问题
收藏 0 0

问题

使用ResponseBodyAdvice统一返回报cannot be cast to java.lang.String的错误,如下图所示。

代码截图
报错截图

解决方法

方案1

网上给出的方案是:在beforeBodyWrite方法中添加类型判断,如果是String类型,则对returnValue进行一次序列。

方案2

因为在所有的 HttpMessageConverter 实例集合中,StringHttpMessageConverter 要比其它的 Converter 排得靠前一些。我们需要将处理 Object 类型的 HttpMessageConverter 放得靠前一些,这可以在 Configuration 类中完成:

代码如下:

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {

        super.configureMessageConverters(converters);
        converters.add(0, new MappingJackson2HttpMessageConverter());
    }
}
锦城虽云乐,不如早还家。

Nexus 服务器同步迁移

上一篇

修改Yii的CheckBox

下一篇

你也可能喜欢

    暂无相关文章!

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片