我有这个微服务,它是一个发现客户端:
@SpringBootApplication
@EnableDiscoveryClient
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
我知道如果尝试在发现服务器尚未可用时启动它,它将失败。我想知道即使发现服务器仍然不可用,是否有办法启动应用程序。当我在构建期间为此运行JUnit单元测试时出现了这个问题。我在JUnit测试的启动/启动期间遇到以下堆栈跟踪片段:(顺便说一句,单元测试与服务发现无关)
2016-03-07 14:45:54.741 ERROR 3024 --- [主要] o.s.boot.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] at 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] at org.springframework.cloud.consul.config.ConsulPropertySource.init(ConsulPropertySource.java:63) 〜[spring-cloud-consul-config-1.0.0.M6.jar:1.0.0.M6] at org.springframework.cloud.consul.config.ConsulPropertySourceLocator.locate(ConsulPropertySourceLocator.java:74) 〜[spring-cloud-consul-config-1.0.0.M6.jar:1.0.0.M6] at org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration.initialize(PropertySourceBootstrapConfiguration.java:89) 〜[spring-cloud-context-1.1.0.M5.jar:1.1.0.M5] at org.springframework.boot.SpringApplication.applyInitializers(SpringApplication.java:640) [spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.boot.SpringApplication.createAndRefreshContext(SpringApplication.java:343) [spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:307) [spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1191) [spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1180) [spring-boot-1.3.2.RELEASE.jar:1.3.2.RELEASE] at ...
发现服务是Consul。
提前致谢!
答案 0 :(得分:0)
答案 1 :(得分:0)
可以通过将此属性设置为 false 来关闭Consul配置:spring.cloud.consul.enabled
所以我用这个属性和值创建了一个配置文件。在运行单元测试时使用该配置文件:
---
spring:
profiles: unitTest
cloud:
consul:
enabled: false