首页 > 代码库 > spring-cloud-feign 使用@RequetParam报错QueryMap parameter must be a Map: class java.lang.String
spring-cloud-feign 使用@RequetParam报错QueryMap parameter must be a Map: class java.lang.String
这里使用spring-cloud-start-feign: 1.2.2 REALEASE版本,依赖管理器版本是 Camden.SR2
出错的原因是@RequestParam的value为empty时,参数会被当作Map来处理
org.springframework.cloud.netflix.feign.annotation.RequestParamParameterProcessor
代码如下:
@Override public boolean processArgument(AnnotatedParameterContext context, Annotation annotation) { RequestParam requestParam = ANNOTATION.cast(annotation); String name = requestParam.value(); if (emptyToNull(name) != null) { context.setParameterName(name); MethodMetadata data = http://www.mamicode.com/context.getMethodMetadata();>
说明spring-cloud-feign处理@RequestParam和Spring mvc的不一样,Spring mvc在@RequestParam的value为空的时候反射得到参数的名字作为value
解决方案: 给@RequestParam加上value
spring-cloud-feign 使用@RequetParam报错QueryMap parameter must be a Map: class java.lang.String
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。