升级到Spring Boot 3后Feign请求返回400错误

问题描述 投票:0回答:1

在我的项目中有一个使用这种方法的假客户端

@PostMapping(path = "/docs/{docId}")
ObjectDto createDocument(@PathVariable("docId") UUID docId, @RequestParam("userId") String userId, MultiValueMap<String, ?> doc);

这在升级到 Spring Boot 3.3.0 之前是有效的

升级后会抛出 400 Bad Request 错误。

我怀疑该请求甚至没有到达其他应用程序,因为无论我做什么,都没有记录任何请求,也没有在接收端抛出 400 错误(尽管正在记录其他请求)。

我尝试将路径更改为“/ds/{docId}”以查看是否会收到 404,但它再次返回 400 错误请求。

调试和打印错误不提供任何更多信息。 我已将 feign.client.config.default.loggerLevel 设置为 FULL,将logging.level.root 设置为 TRACE,但没有运气。

我唯一能弄清楚的是,如果我改变客户端方法和 服务器端点并删除 MultiValueMap doc 参数,请求有效。

我尝试发送 @RequestPart("file") MultipartFile 文件并添加 Consumers = "multipart/form-data" 以防错误是由 MultiValueMap 引起的,但我仍然遇到相同的错误。

@PostMapping(path = "/docs/{docId}", consumes = MULTIPART_FORM_DATA_VALUE)
ObjectDto createDocument(@PathVariable("docId") UUID docId, @RequestParam("userId") String userId, @RequestPart("file") MultipartFile file);

您有什么想法吗?或者我如何获得有关该请求有什么问题的更多信息?

spring-boot spring-cloud-feign feign
1个回答
0
投票

您能找到解决方案吗? Spring Boot 升级后我遇到了类似的问题。

© www.soinside.com 2019 - 2024. All rights reserved.