我在使用Zuul和领事服务发现设置Spring应用程序时遇到了问题。我在本地安装和运行了领事服务器代理:
./src/main/bash/local_run_consul.sh当我使用@EnableZuulProxy注释运行Spring应用程序时,我得到以下错误:
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.cloud.netflix.zuul.filters.RouteLocator]: Factory method 'routeLocator' threw exception; nested exception is java.lang.IllegalStateException: Unable to locate service in consul agent: edge-server-8765
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
... 73 more资料来源:
build.gradle
buildscript {
ext {
springBootVersion = '1.2.7.RELEASE'
}
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'war'
apply plugin: 'spring-boot'
war {
baseName = 'edge-server'
version = '0.0.1-SNAPSHOT'
}
mainClassName = 'com.akamai.pulsar.onboarding.edge.app.ZuulApplication'
dependencies {
providedRuntime("org.springframework.boot:spring-boot-starter-tomcat")
compile("org.springframework.boot:spring-boot-starter-web") {
exclude module: 'spring-boot-starter-tomcat'
}
compile("org.springframework.boot:spring-boot-starter-undertow")
compile("org.springframework.boot:spring-boot-starter-actuator")
compile('org.springframework.cloud:spring-cloud-starter-zuul:1.0.0.RELEASE')
compile('org.springframework.cloud:spring-cloud-starter-consul-all:1.0.0.M3')
testCompile('org.springframework.boot:spring-boot-starter-test')
}application.yml
info:
component: Zuul Server
endpoints:
restart:
enabled: true
shutdown:
enabled: true
health:
sensitive: false
zuul:
ignoredServices: "*"
routes:
test-api:
path: /test-api/**
server:
port: 8765
logging:
level:
ROOT: INFO
org.springframework.web: INFObootstrap.yml
spring:
application:
name: edge-server
cloud:
consul:
host: localhost
port: 8500
config:
enabled: trueZuulApplication.java
@SpringBootApplication
@EnableDiscoveryClient
@EnableZuulProxy
public class ZuulApplication {
public static void main(String[] args) {
new SpringApplicationBuilder(ZuulApplication.class).web(true).run(args);
}
}备注:当我注释掉@EnableZuulProxy注释时,我的服务没有问题地运行,并在领事中正确注册。
我不知道该怎么办。也许有一些坏的依赖问题?
提前谢谢。
发布于 2015-11-18 20:28:32
春季云中有一个错误和ConsulDiscoveryClient.getLocalServiceInstance。
现在,设置zuul.ignoreLocalService: false将围绕着它工作。
https://stackoverflow.com/questions/33782873
复制相似问题