2016-03-07 2 views
1

У меня есть этот microservice, который является клиентом открытие:Есть ли способ запустить приложение Spring клиента Discovery, даже если с сервером обнаружения нельзя связаться?

@SpringBootApplication 
@EnableDiscoveryClient 
public class Application { 

    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 
} 

Я знаю, что, если он пытался быть запущен, пока сервер открытие еще не доступен, он потерпит неудачу. Я хотел бы знать, есть ли способ запустить приложение, даже если сервер обнаружения по-прежнему недоступен. Проблема возникла, когда я выполнил единичный тест JUnit для этого во время сборки. Я встречая следующий трассировки стека фрагмент кода во время запуска/запуска JUnit тестов: (кстати, модульные тесты не имеют ничего общего с Discovery службы)

2016-03-07 14: 45: 54,741 ОШИБКА 3024 - - [главная] osboot.SpringApplication: запуск приложений не удалось

com.ecwid.consul.transport.TransportException: java.net.ConnectException: Подключение отказано в com.ecwid.consul.transport.AbstractHttpTransport .executeRequest (AbstractHttpTransport.java:80) ~ [consul-api-1.1.8.jar: na] на com.ecwid.consul.transport.AbstractHttpTransport.makeGetRequest (AbstractHttpTransport.java:39) ~ [consul-api-1.1.8.jar: na] at com.ecwid.consul.v1.ConsulRawClient.makeGetRequest (ConsulRawClient. java: 81) ~ [consul-api-1.1.8.jar: na] at com.ecwid.consul.v1.kv.KeyValueConsulClient.getKVValues ​​(KeyValueConsulClient.java:150) ~ [consul-api-1.1. 8.jar: na] at com.ecwid.consul.v1.kv.KeyValueConsulClient.getKVValues ​​(KeyValueConsulClient.java:143) ~ [consul-api-1.1.8.jar: na] at com.ecwid.consul .v1.ConsulClient.getKVValues ​​(ConsulClient.java:394) ~ [consul-api-1.1.8.jar: na] в org.springframework.cloud.consul.config.ConsulPropertySource.init (ConsulPropertySource.java:63) ~ [spring-cloud-consul-config-1.0.0.M6.jar: 1.0.0.M6] в org.springframework.cloud.consul.config.ConsulPropertySourceLocator.locate (ConsulPropertySourceLocator.java:74) ~ [ spring-cloud-consul-config-1.0.0.M6.jar: 1.0.0.M6] в org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration.initialize (PropertySourceBootstrapConfiguration.java:89) ~ [spring-cloud -context-1.1.0.M5.jar: 1.1.0.M5] в org.springframework.boot.SpringApplication.applyInitializers (SpringApplication.java:640) [spring-boot-1.3.2.RELEASE.jar: 1.3 .2.RELEASE] на org.springframework.boot.SpringApplication.createAndRefreshContext (SpringApplication.java:343) [spring-boot-1.3.2.RELEASE.jar: 1.3.2.RELEASE] на org.springframework.boot.SpringApplication.run (SpringApplication.java:307) [spring-boot-1.3.2.RELEASE.jar: 1.3.2.RELEASE] в org.springframework.boot.SpringApplication.run (SpringApplication. java: 1191) [spring-boot-1.3.2.RELEASE.jar: 1.3.2.RELEASE] на org.springframework.boot.SpringApplication.run (SpringApplication.java:1180) [spring-boot-1.3. 2.RELEASE.jar: 1.3.2.RELEASE] at ...

Служба обнаружения - консул.

Заранее благодарен!

ответ

0

Хит же вопрос сейчас. По-видимому, исправление имеет been submitted.

В основном была выполнена повторная попытка.

Не знаете, как долго он будет выпущен.

Честно говоря, я собираюсь попробовать вариант Эврика.

0

Консул конфигурации можно отключить, установив это свойство ложной: spring.cloud.consul.enabled

Так что я создал профиль с этим свойством и значением. Профиль используется при выполнении модульного испытания:

--- 
spring: 
    profiles: unitTest 
    cloud: 
    consul: 
     enabled: false