spring cloud feign 传【对象】报:XX not a type supported by this encoder 解决方案

本文探讨了在使用Feign进行POST请求时遇到的实体参数传输错误:DeviceInfoDTO notatypesupportedbythisencoder。问题源于MultipartSupportConfig的不当配置,将其作为全局配置导致实体参数无法正常传输。通过正确配置FeignClient,可以解决此问题。
部署运行你感兴趣的模型镜像

最近在项目中使用feign,但是使用POST请求传输对象却总是报错:

feignClient代码:

@PostMapping(FEIGN_PREFIX + "/add")
GeneralResult addDeviceInfo(@RequestBody DeviceInfoDTO deviceInfoDTO);

实现代码:

@Override
@PostMapping(FEIGN_PREFIX + "/add")
public GeneralResult addDeviceInfo(@RequestBody DeviceInfoDTO deviceInfoDTO) {
  ......
}

但是调用会报错 DeviceInfoDTO not a type supported by this encoder 

检查了很多次找到原因:

1.当前项目POM文件引用 文件上传项目api

2.文件上传项目api由于要使用feign上传文件所以应该配置:

@FeignClient(
        value = CommonConstant.APPLICATION_FASTDFS_NAME, configuration = FeignClient.MultipartSupportConfig.class
)
public interface FeignClient {

    String FEIGN_PREFIX="/fastdfs";

    /**
     * 上传文件
     * @param file
     */
    @PostMapping(value=FEIGN_PREFIX + "/fastDfsUpload",produces = {MediaType.APPLICATION_JSON_UTF8_VALUE},consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    GeneralResult<FastFileDTO> fastDfsUpload(@RequestPart("file") MultipartFile file,@RequestParam("type")int type) throws IOException;


    class MultipartSupportConfig {
        @Bean
        public Encoder feignFormEncoder() {
            return new SpringFormEncoder();
        }
    }
}

但是我却将MultipartSupportConfig单独写到配置文件中并且在其上添加了@Configuration注解成为了全局配置,以至于无法正常传输实体参数。

参考链接:参考链接

您可能感兴趣的与本文相关的镜像

Seed-Coder-8B-Base

Seed-Coder-8B-Base

文本生成
Seed-Coder

Seed-Coder是一个功能强大、透明、参数高效的 8B 级开源代码模型系列,包括基础变体、指导变体和推理变体,由字节团队开源

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值