springboot3.x项目启动报错IllegalStateException: RequestParam.value() was empty on parameter 0 ofmethod get

在这里插入图片描述
废话少说,上异常。
此问题出现在升级springboot至3.x的过程中。

一、报错信息

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

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.wdy.wb.feign.RemoteAiTFeign': FactoryBean threw exception on object creation
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:188)
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:124)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1850)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.getObjectForBeanInstance(AbstractAutowireCapableBeanFactory.java:1276)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:336)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200)
	at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353)
	at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:598)
	at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:576)
	at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:738)
	at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:270)
	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145)
	at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessProperties(CommonAnnotationBeanPostProcessor.java:368)
	... 47 common frames omitted
Caused by: java.lang.IllegalStateException: RequestParam.value() was empty on parameter 0 of method getTcTaskCount
	at feign.Util.checkState(Util.java:140)
	at org.springframework.cloud.openfeign.annotation.RequestParamParameterProcessor.processArgument(RequestParamParameterProcessor.java:63)
	at org.springframework.cloud.openfeign.support.SpringMvcContract.processAnnotationsOnParameter(SpringMvcContract.java:298)
	at feign.Contract$BaseContract.parseAndValidateMetadata(Contract.java:126)
	at org.springframework.cloud.openfeign.support.SpringMvcContract.parseAndValidateMetadata(SpringMvcContract.java:197)
	at feign.Contract$BaseContract.parseAndValidateMetadata(Contract.java:65)
	at feign.ReflectiveFeign$ParseHandlersByName.apply(ReflectiveFeign.java:137)
	at feign.ReflectiveFeign.newInstance(ReflectiveFeign.java:56)
	at feign.ReflectiveFeign.newInstance(ReflectiveFeign.java:48)
	at feign.Feign$Builder.target(Feign.java:201)
	at org.springframework.cloud.openfeign.DefaultTargeter.target(DefaultTargeter.java:30)
	at org.springframework.cloud.openfeign.FeignClientFactoryBean.loadBalance(FeignClientFactoryBean.java:429)
	at org.springframework.cloud.openfeign.FeignClientFactoryBean.getTarget(FeignClientFactoryBean.java:477)
	at org.springframework.cloud.openfeign.FeignClientFactoryBean.getObject(FeignClientFactoryBean.java:452)
	at org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:182)
	... 61 common frames omitted

二、异常排查

从上述报错第一行可以看到RemoteAiTFeign文件有异常,且第二个Caused by里提到RequestParam,故查该文件代码,发现@RequestParam注解中没有指定value属性值,如下:

public interface RemoteAiTFeign {
    /**
     * 获取当前任务数量
     * @return 获取当前任务数量
     */
    @PostMapping("/api/v1/t/getTcTaskCount")
    R<Integer> getTcTaskCount(@RequestParam @Valid String userId);
}

分析:本次feign升级为4.1.1之后,上述代码才出现问题,之前版本的feign是无此异常提示的。
之前feign版本如下:
在这里插入图片描述
现在feign版本如下:
在这里插入图片描述

三、异常解决

问题既然已经有了思路,故加上value属性,再尝试,修改代码之后,如下:

public interface RemoteAiTFeign {
    /**
     * 获取当前任务数量
     * @return 获取当前任务数量
     */
    @PostMapping("/api/v1/t/getTcTaskCount")
    R<Integer> getTcTaskCount(@RequestParam(value = "userId") @Valid String userId);
}

启动后,此问题消失,启动程序恢复正常,此问题得以解决。

END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一掬净土

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值