You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
java.lang.NoSuchMethodError: feign.Request.requestTemplate()Lfeign/RequestTemplate;
at com.tencent.cloud.rpc.enhancement.feign.plugin.reporter.ReporterUtils.createServiceCallResult(ReporterUtils.java:43)
at com.tencent.cloud.rpc.enhancement.feign.plugin.reporter.SuccessPolarisReporter.run(SuccessPolarisReporter.java:72)
at com.tencent.cloud.rpc.enhancement.feign.EnhancedFeignClient.execute(EnhancedFeignClient.java:108)
at org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer.execute(FeignLoadBalancer.java:93)
at org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer.execute(FeignLoadBalancer.java:56)
at com.netflix.client.AbstractLoadBalancerAwareClient$1.call(AbstractLoadBalancerAwareClient.java:104)
at com.netflix.loadbalancer.reactive.LoadBalancerCommand$3$1.call(LoadBalancerCommand.java:303)
at com.netflix.loadbalancer.reactive.LoadBalancerCommand$3$1.call(LoadBalancerCommand.java:287)
at rx.internal.util.ScalarSynchronousObservable$3.call(ScalarSynchronousObservable.java:231)
at rx.internal.util.ScalarSynchronousObservable$3.call(ScalarSynchronousObservable.java:228)
然后重新启动服务发现报错:
[2022-08-16 10:28:06.159] ERROR org.springframework.boot.SpringApplication 834 - Application run failed
java.lang.IllegalStateException: Service id not legal hostname (${system.app.feign.service.platform}/pla/account)
at org.springframework.util.Assert.state(Assert.java:76)
at org.springframework.cloud.openfeign.FeignClientsRegistrar.getName(FeignClientsRegistrar.java:109)
Java Web工程
原架构环境:主pom构成
dependencyManagement 依赖 spring-boot-dependencies 和 spring-cloud-tencent-dependencies
<spring-boot.version>2.3.12.RELEASE</spring-boot.version>
1.6.0-Hoxton.SR12
spring-cloud-tencent (1.6.0-Hoxton.SR12) + spring boot (2.3.12.RELEASE) + openfeign(2.2.1.RELEASE) + spring-cloud-commons(2.2.1.RELEASE)
升级前的feignclient的使用
@FeignClient(value = "${system.app.feign.service.platform}",
contextId = "${system.app.feign.service.platform}" + PlatformUrlConstant.WEB_ACCOUNT,
configuration = FeignConfiguration.class,
path = "${system.app.feign.service.platform.path}" + PlatformUrlConstant.WEB_ACCOUNT)
public interface AccountFeignService{
}
${system.app.feign.service.platform} 和 ${system.app.feign.service.platform.path} 是从polaris 配置中心读取的配置变量
system.app.feign.service.platform=system-service
system.app.feign.service.platform.path=
原架构 可正常运行 feign可正常调用
升级过程:
java.lang.NoSuchMethodError: feign.Request.requestTemplate()Lfeign/RequestTemplate;
at com.tencent.cloud.rpc.enhancement.feign.plugin.reporter.ReporterUtils.createServiceCallResult(ReporterUtils.java:43)
at com.tencent.cloud.rpc.enhancement.feign.plugin.reporter.SuccessPolarisReporter.run(SuccessPolarisReporter.java:72)
at com.tencent.cloud.rpc.enhancement.feign.EnhancedFeignClient.execute(EnhancedFeignClient.java:108)
at org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer.execute(FeignLoadBalancer.java:93)
at org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer.execute(FeignLoadBalancer.java:56)
at com.netflix.client.AbstractLoadBalancerAwareClient$1.call(AbstractLoadBalancerAwareClient.java:104)
at com.netflix.loadbalancer.reactive.LoadBalancerCommand$3$1.call(LoadBalancerCommand.java:303)
at com.netflix.loadbalancer.reactive.LoadBalancerCommand$3$1.call(LoadBalancerCommand.java:287)
at rx.internal.util.ScalarSynchronousObservable$3.call(ScalarSynchronousObservable.java:231)
at rx.internal.util.ScalarSynchronousObservable$3.call(ScalarSynchronousObservable.java:228)
升级失败 重新修改主pom依赖架构 升级为
dependencyManagement 依赖 spring-cloud-dependencies 和 spring-cloud-tencent-dependencies
spring-cloud-tencent (1.7.0-Hoxton.SR12) + spring cloud (Hoxton.SR12)
从而openFeign 和 spring-cloud-commons使用 spring-cloud依赖的版本 见如下 注释掉了版本号
org.springframework.cloud spring-cloud-starter-openfeign org.springframework.cloud spring-cloud-commons然后重新启动服务发现报错:
[2022-08-16 10:28:06.159] ERROR org.springframework.boot.SpringApplication 834 - Application run failed
java.lang.IllegalStateException: Service id not legal hostname (${system.app.feign.service.platform}/pla/account)
at org.springframework.util.Assert.state(Assert.java:76)
at org.springframework.cloud.openfeign.FeignClientsRegistrar.getName(FeignClientsRegistrar.java:109)
查看pom依赖树发现 spring-cloud-starter-openfeign 依赖版本为 2.2.9.RELEASE (从spring-cloud Hoxton.SR12依赖)
由此确认 高版本的openfeign 无法读取 配置中心定义的 动态服务名变量
原先不升级架构 单独将 spring-cloud-starter-openfeign 升级到 2.2.1.RELEASE 以上版本 也发现了无法从配置中心读取变量值
期望:
SCT后期版本 能否有改良的feign 支持服务名 可以从配置中心动态获取
The text was updated successfully, but these errors were encountered: