Feign 多文件未知异常!原因:null

问题说明

项目中需要用到feign调用多文件的接口,出现这个问题的前提是已经参照多数博客中的方法,为feign客户端重写了编码器的配置,可以参照feign多文件上传。我不知道这些博主有没有出现我这个问题,但是我按照他们的配置后,确出现了以下问题,前台返回了这个错误

未知异常!原因是: null

后台的异常是,无关紧要的省略了

feign.codec.EncodeException
	.
	.
	.
Caused by: java.lang.NullPointerException
	at feign.form.util.PojoUtil.isUserPojo(PojoUtil.java:50)
	at feign.form.multipart.PojoWriter.isApplicable(PojoWriter.java:40)
	at feign.form.MultipartFormContentProcessor.findApplicableWriter(MultipartFormContentProcessor.java:159)
	at feign.form.MultipartFormContentProcessor.process(MultipartFormContentProcessor.java:86)
	at feign.form.FormEncoder.encode(FormEncoder.java:105)
	at cn.farmall.file.config.FeignSpringFormEncoder.encode(FeignSpringFormEncoder.java:42)
	at feign.ReflectiveFeign$BuildEncodedTemplateFromArgs.resolve(ReflectiveFeign.java:372)
	... 100 more

解决办法

在自定义的在自定义的的编码中,修改传输文件的委托编码器顺序

public FeignSpringFormEncoder(Encoder delegate) {
   
        super(delegate);
        MultipartFormContentProcessor processor = (MultipartFormContentProcessor)this.getContentProcessor(ContentType.MULTIPART);
        //前移添加MultipartFiles的委托编码器(多文件)
        processor.addFirstWriter(new SpringManyMultipartFilesWriter());
        //前移添加MultipartFile的委托编码器(单文件)
        processor.addFirstWriter(new SpringSingleMultipartFileWriter());
        //别人的方法,添加MultipartFiles的委托编码器(多文件)
//        processor.addWriter(new SpringManyMultipartFilesWriter());
        //别人的方法,添加MultipartFile的委托编码器(单文件)
//        processor.addWriter(new SpringSingleMultipartFileWriter());
    }

问题分析(以下不感兴趣可跳过,只是记录自己思考的过程,内容顺序上可能有些杂乱)

开始出现这问题的时候,我一直以为,我经过一番删代码,找其他办法重写,再删代码,再找其他办法重写,三删代码,三找其他办法重写,一番体验和效果都极佳的百度处理后。我对未来充满了信心,喜悦之情油然而生。在这里插入图片描述
找你妹啊,全都是按照一个套路,我不要面子的。于是乎我只能忽略我是个菜鸡,开始调试源码。(这个反反复复的弄了几次,虽然已经找到错误位置,可是开始并没有想到怎么处理,主要是刚刚开始学这个,对一些处理并不懂,哪怕是参考人家的代码,也不懂为什么要这么做,自己菜就不多说了。)

  1. 为什么出现空指针的异常,从异常日志可以看到是 feign.form.util.PojoUtil.isUserPojo(PojoUtil.java:50) 这个地方出现的异常,这是什么,不能着急,从根源跟踪一些它在搞什么东西,打个断点跟踪(以下代码说明断点位置而已,防止有人看,多说一点废话,万一有跟我一样的萌新呢,要一步一步来),这个方法在参考文章中的FeignSpringFormEncoder 方法
public void encode(Object object, Type bodyType
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值