【发布时间】:2019-05-01 23:28:12
【问题描述】:
Spring cloud openFeign 无法创建动态查询参数。它抛出异常是因为 SpringMvcContract 试图找到不存在的 RequestParam 值属性。
java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0
@RequestMapping(method = RequestMethod.GET, value = "/orders")
Pageable<Order> searchOrder2(@RequestParam CustomObject customObject);
我尝试使用@QueryMap 而不是@RequestParam,但@QueryMap 不会生成查询参数。
顺便说一句@RequestParam Map<String, Object> params 方法参数可以很好地生成动态查询参数。
但我想使用一个自定义对象,其中 feign 客户端可以从对象的属性中生成动态查询参数。
【问题讨论】:
-
AFAIK,Spring 在将查询参数绑定到自定义 DTO 时不需要 RequestParam 注释。 (Ref)。您是否尝试过不使用 RequestParam 注释?这个合同在服务器端工作正常吗?如果这个接口只是为了在 Feign 端生成客户端而创建的,你有没有尝试过其他格式?动态查询参数是什么意思? AFAIK,http 规范没有动态查询参数之类的东西。
-
感谢@bhdrkn 的帮助。请看我的回答。
标签: spring spring-mvc spring-boot spring-cloud spring-cloud-feign