报错如下:
feign.codec.EncodeException: Could not write JSON: No serializer found for class java.io.FileDescriptor and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS); nested exception is com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class java.io.FileDescriptor and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: com.hcfc.crm.legal.dto.sealbatch.req.LamLgSealBatchFileReqDto[“documentTypeList”]->java.util.ArrayList[0]->com.hcfc.crm.legal.dto.sealbatch.req.LamLgSealFileReqDto[“file”]->org.springframework.web.multipart.support.StandardMultipartHttpServletRequest$StandardMultipartFile[“inputStream”]->java.io.FileInputStream[“fd”])
原因:
通过feign远程调用的入参对象有个MultipartFile属性,变量名为file,无法序列化
我的改动方案:
将这个multipartFile保存起来,放到文件服务器中,生成唯一标识fileKey,然后将这个字段赋值为null. 通过fileKey进行传输,下游服务再使用fileKey获取文件