1

我有这样的,

@FeignClient(name = "${airport.service.name}")

而且我有编译错误,例如,

java.lang.IllegalStateException:服务 id 不是合法的主机名 (${airport.service.name})

问题是如何将主机名表单传递applciation.yaml给 FeignClient?

4

3 回答 3

9

虽然已经很晚了,但我正在更新我的答案,因为我在 Spring Cloud 中使用 feign 客户端时遇到了这个异常(java.lang.IllegalStateException:服务 id 不是合法的主机名)根本原因是 feign 客户端不会接受低于分数的服务名称, 请通过以下链接。为了解决这个问题,我用 hypen(school-service) 而不是 understore(school_service) 重命名了 feign 客户端使用的服务名称

Github 链接 - spring-cloud-netflix - 问题 Github 链接 - spring-cloud-netflix - 提交

于 2019-04-29T12:54:20.017 回答
1

使用feign.client.config.airport-service.name, 并在属性或 yml 中配置。见https://github.com/spring-cloud/spring-cloud-openfeign/blob/master/docs/src/main/asciidoc/spring-cloud-openfeign.adoc

于 2021-04-23T01:34:25.010 回答
0

您可以指定 url 参数,而不是 name 参数:

@FeignClient(name = "${airport.service.name}", url = "${airport.service.url}")

如果你需要使路径可配置,你可以使用类似的东西

 @RequestMapping(
            path = "${airport.service.path}"
  )
于 2018-02-02T17:17:52.813 回答