Spring Open-Feign не запускается с более чем одним spring.application.name, используемым в Config-клиенте - PullRequest
0 голосов
/ 25 июня 2019

В моем приложении мы используем конфигурацию Spring Cloud, в которой мы храним свойства файла, как показано ниже

Сервер конфигурации

spring.profiles.active=native
spring.cloud.config.server.native.search-locations=file:///${SRC.HOME}/config/,file:///${SRC.HOME}/config/app1/,file:///${SRC.HOME}/config/app2/,file:///${SRC.HOME}/config/app3/

Config Client

spring.profiles.active=dev,spring.cloud.config.uri=http://localhost:7070/,spring.application.name=app1,app2,app3

В последнее время мы представляем весеннюю open-feign и замечаем, что основной класс загружается только при наличии одного имени приложения. В тот момент, когда вы предоставляете имена через запятую (spring.application.name = app1, app2, app3), он прерывается, за исключением следующих случаев

Вопросы

  1. Кто-нибудь сталкивался с этим когда-либо?
  2. Что я, наверное, делаю неправильно?
  3. Нужно ли мне изменить подход загрузки конфигурации так, чтобы я предоставлял только одно имя?
  4. Как приспособить эту функцию, сохраняя подход загрузки конфигурации то же самое.

    Spring-boot Version -2.1.5.RELEASE
    Open-Feign - 2.1.1.Release
    Spring-Cloud - Greenwich.SR1
    

Исключение

Причина: java.lang.ClassCastException: java.util.ArrayList не может быть приведение к java.lang.String в com.netflix.config.ConfigurationBasedDeploymentContext.getValueFromConfig (ConfigurationBasedDeploymentContext.java:329) ~ [Archaius-ядра-0.7.6.jar: 0.7.6]

1 Ответ

0 голосов
/ 25 июня 2019
  1. каждое приложение должно иметь только одно уникальное имя.(учтите, что если вы используете eurake для regiter, у вас может быть несколько экземпляров одного и того же приложения для балансировки нагрузки)
  2. если вам нужен другой файл конфигурации для одного и того же приложения, вы можете использовать профиль, например spring.profiles.active =dev2.

Кстати, я не уверен, зачем вам несколько мест для конфигурационных файлов, но я думаю, что единое местоположение для всех конфигурационных файлов - обычная практика.

...