【踩坑日记】feign调用时报错:java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0

这篇具有很好参考价值的文章主要介绍了【踩坑日记】feign调用时报错:java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

项目场景:

SpringCloud微服务,使用feign进行服务间的调用


问题描述

服务启动后出现异常:

nested exception is java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0

原因分析:

IllegalStateException: RequestParam.value() was empty on parameter 0

非法状态异常。大概意思是:第 0 个参数绑定的 value 值为空。也就是说第 0 个参数没有正确的绑定请求的参数映射。

这个错误产生的原因是我们使用了 Feign,在配置了 @FeignClient 注解的接口上声明的方法中的参数使用了 @RequestParam 注解,但是 @RequestParam 注解并没有指定 value 属性。

例如:

  @PostMapping("/list")
  public List<LabelDTO> list(
      @RequestParam Integer type,
      @RequestParam(value = "startTime") String startTime,
      @RequestParam(value = "endTime") String endTime) {
    return labelService.list(type, startTime, endTime);

上面因为参数type的@RequestParam未配置(value="type"),导致了项目启动异常


解决方案:

参数type的添加value配置,@RequestParam(value="type")

总结:

 Springboot 中可以不指定 value 使用 @RequestParam 注解,但是 Spring cloud 中的 Feign 却是不行

因为Feign 的底层使用的是 httpclient进行通讯,在低版本中会产生这个问题,高版本中已经对这个问题修复了,不过本人还没试过。后面验证文章来源地址https://www.toymoban.com/news/detail-755630.html

到了这里,关于【踩坑日记】feign调用时报错:java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java.lang.IllegalStateException异常原因和解决

    Iterator.remove() 迭代删除 引发 1. Iterator.remove() 迭代删除 引发 场景示例 问题分析

    2024年02月16日
    浏览(58)
  • 解决Caused by: java.lang.IllegalStateException:

    目录 问题描述 解决方案 1. 修改JVM的-Xss参数 2. 检查循环继承依赖项 3. 更新相关库和依赖 总结 在使用Java开发Web应用程序时,我们有时会遇到​ ​Caused by: java.lang.IllegalStateException​ ​​异常,其中包含一个关于StackOverflow错误的描述。这种错误可能会导致无法完成对Web应用程

    2024年02月03日
    浏览(114)
  • java连接redis,日志报错java.lang.IllegalStateException

    日志具体报错如下,无法启动应用 pom.xml java程序 出现这种问题的原因是版本不合适,使用springboot版本2.7.6,但是使用spring-boot-date的版本是1.7.2.RELEASE 注释版本 重新启动java程序,启动成功

    2024年01月23日
    浏览(44)
  • 解决java.lang.IllegalStateException: Duplicate key异常

    项目重启后突然报这个异常 看日志应该是在初始化字典,源代码 这里的操作是把词典list转换成map,然后key冲突。 但我比对了一下数据,没有找到重复的dictValue,报这个错有点莫名其妙。 最后的解决办法参考了其他网友,得以顺利解决,最后上修改后的代码 Collectors.toMap 增

    2024年02月15日
    浏览(48)
  • 已解决java.lang.IllegalStateException: Duplicate key

    已解决java.lang.IllegalStateException: Duplicate key java.lang.IllegalStateException: Duplicate key java.lang.IllegalStateException: Duplicate key 是由于在使用 Map 或 Set 时,试图将一个已经存在的键值或元素添加到集合中而引发的异常。 下滑查看解决方法 要解决这个问题,可以采取以下步骤: 确保你使用

    2024年02月07日
    浏览(52)
  • 项目bug——编码问题报错(java.lang.IllegalStateException)

    项目拉下后报错 2023-07-17 14:26:07.596 ERROR 14300 — [ main] o.s.boot.SpringApplication : Application run failed java.lang.IllegalStateException: Failed to load property source from ‘file:/Users/wang/IdeaProjects/ms-family-pre/target/classes/application.yaml’ (classpath:/application.yaml) at org.springframework.boot.context.config.ConfigFileAppl

    2024年02月16日
    浏览(53)
  • java.lang.IllegalStateException:Failed to load ApplicationContext

    无法加载应用程序上下文。这可能有许多原因,例如配置文件不正确或缺少依赖项。 解决步骤: 检查是否存在所有所需的依赖项,并确保它们在项目的pom.xml文件中正确配置。 检查配置文件(例如application.properties或application.yml)是否位于正确的位置,并且其内容是否已正确格式化

    2024年02月07日
    浏览(57)
  • java.lang.IllegalStateException: Failed to load ApplicationContext

    mvn clean install的时候报的如下异常: 紧接着又往下翻了一下日志还有一个这个错误 按正常来说通过 @@ 可以取pom当中的properties标签的值呀。但是可以发现编译过后的application当中的值并没有被替换。 (1)我先是将server.port=@server.port@替换成了server.port=8082,然后clean install直接成

    2024年02月07日
    浏览(48)
  • java.lang.IllegalStateException: Failed to execute ApplicationRunner

    在跑search服务实现ApplicationRunner接口的监听类时,出现Failed to execute ApplicationRunner这个错误

    2024年02月11日
    浏览(48)
  • 已解决java.lang.IllegalStateException异常的正确解决方法,亲测有效!!!

    java.lang.IllegalStateException java.lang.IllegalStateException通常表示程序的当前状态与所期望的状态不符,导致方法的调用无效或不合法。 下滑查看解决方法 要解决这个问题,你可以尝试以下几个方法: 检查代码逻辑:查看在抛出异常之前的代码,确保程序状态符合所期望的条件。特

    2024年02月05日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包