Feign Клиент и имя из свойств

У меня есть что-то вроде этого,

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

И у меня есть ошибка компиляции, например,

java.lang.IllegalStateException: идентификатор службы не является допустимым именем хоста (${airport.service.name})

Вопрос в том, как я могу передать форму имени хоста applciation.yaml в FeignClient?


person user3528733    schedule 05.04.2017    source источник
comment
Вы добавили @PropertySource("classpath:applciation.yaml") поверх класса?   -  person PRATHAP S    schedule 05.04.2017
comment
конфигурация из весенней облачной конфигурации   -  person user3528733    schedule 05.04.2017
comment
Вы уверены, что ваша конфигурация содержит ключ?   -  person JEY    schedule 05.04.2017
comment
да, я нашел проблему .. опечатки ..   -  person user3528733    schedule 05.04.2017


Ответы (3)


Хотя уже поздно, я обновляю свой ответ, так как столкнулся с этим исключением (java.lang.IllegalStateException: идентификатор службы не является допустимым именем хоста) при использовании ложного клиента в весеннем облаке. Основная причина - ложный клиент не принимает имя службы с нижним баллом, перейдите по ссылке ниже. Чтобы решить эту проблему, я переименовал имя службы, которое будет использоваться фиктивным клиентом, с помощью hypen (school-service) вместо understore (school_service).

Ссылка на Github — spring-cloud-netflix — Проблема Ссылка на Github — spring-cloud-netflix — commit

person Magesh    schedule 29.04.2019
comment
Это действительно было и в моем коде, я думаю, вы можете просто решить этот вопрос своим ответом. - person newhouse; 10.09.2019

используйте 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

person yanghui    schedule 23.04.2021

Вы можете указать параметр URL, а не параметр имени:

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

и если вам нужно настроить путь, вы можете использовать что-то вроде

 @RequestMapping(
            path = "${airport.service.path}"
  )
person A. Maksakov    schedule 02.02.2018