解决:com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
服务向Eureka注册出现以下问题:
com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112) ~[eureka-client-1.9.2.jar:1.9.2]
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56) ~[eureka-client-1.9.2.jar:1.9.2]
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$1.execute(EurekaHttpClientDecorator.java:59) ~[eureka-client-1.9.2.jar:1.9.2]
at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77) ~[eureka-client-1.9.2.jar:1.9.2]
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.register(EurekaHttpClientDecorator.java:56) ~[eureka-client-1.9.2.jar:1.9.2]
at com.netflix.discovery.DiscoveryClient.register(DiscoveryClient.java:829) ~[eureka-client-1.9.2.jar:1.9.2]
at com.netflix.discovery.InstanceInfoReplicator.run(InstanceInfoReplicator.java:121) ~[eureka-client-1.9.2.jar:1.9.2]
at com.netflix.discovery.InstanceInfoReplicator
1.
r
u
n
(
I
n
s
t
a
n
c
e
I
n
f
o
R
e
p
l
i
c
a
t
o
r
.
j
a
v
a
:
101
)
[
e
u
r
e
k
a
−
c
l
i
e
n
t
−
1.9.2.
j
a
r
:
1.9.2
]
a
t
j
a
v
a
.
u
t
i
l
.
c
o
n
c
u
r
r
e
n
t
.
E
x
e
c
u
t
o
r
s
1.run(InstanceInfoReplicator.java:101) [eureka-client-1.9.2.jar:1.9.2] at java.util.concurrent.Executors
1.run(InstanceInfoReplicator.java:101)[eureka−client−1.9.2.jar:1.9.2]atjava.util.concurrent.ExecutorsRunnableAdapter.call(Executors.java:511) [na:1.8.0_241]
at java.util.concurrent.FutureTask.run$$
c
a
p
t
u
r
e
(
F
u
t
u
r
e
T
a
s
k
.
j
a
v
a
:
266
)
[
n
a
:
1.8.
0
2
41
]
a
t
j
a
v
a
.
u
t
i
l
.
c
o
n
c
u
r
r
e
n
t
.
F
u
t
u
r
e
T
a
s
k
.
r
u
n
(
F
u
t
u
r
e
T
a
s
k
.
j
a
v
a
)
[
n
a
:
1.8.
0
2
41
]
a
t
j
a
v
a
.
u
t
i
l
.
c
o
n
c
u
r
r
e
n
t
.
S
c
h
e
d
u
l
e
d
T
h
r
e
a
d
P
o
o
l
E
x
e
c
u
t
o
r
capture(FutureTask.java:266) [na:1.8.0_241] at java.util.concurrent.FutureTask.run(FutureTask.java) [na:1.8.0_241] at java.util.concurrent.ScheduledThreadPoolExecutor
capture(FutureTask.java:266)[na:1.8.0241]atjava.util.concurrent.FutureTask.run(FutureTask.java)[na:1.8.0241]atjava.util.concurrent.ScheduledThreadPoolExecutorScheduledFutureTask.access
201
(
S
c
h
e
d
u
l
e
d
T
h
r
e
a
d
P
o
o
l
E
x
e
c
u
t
o
r
.
j
a
v
a
:
180
)
[
n
a
:
1.8.
0
2
41
]
a
t
j
a
v
a
.
u
t
i
l
.
c
o
n
c
u
r
r
e
n
t
.
S
c
h
e
d
u
l
e
d
T
h
r
e
a
d
P
o
o
l
E
x
e
c
u
t
o
r
201(ScheduledThreadPoolExecutor.java:180) [na:1.8.0_241] at java.util.concurrent.ScheduledThreadPoolExecutor
201(ScheduledThreadPoolExecutor.java:180)[na:1.8.0241]atjava.util.concurrent.ScheduledThreadPoolExecutorScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [na:1.8.0_241]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [na:1.8.0_241]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [na:1.8.0_241]
at java.lang.Thread.run(Thread.java:748) [na:1.8.0_241]
在添加security之后会出现这个错误,需要在注册中心的主启动类添加以下配置:
public class RegisterCenterApp extends WebSecurityConfigurerAdapter {
public static void main( String[] args ) {
SpringApplication.run(RegisterCenterApp.class, args);
}
@Override
protected void configure(HttpSecurity http) throws Exception {
// 关闭csrf
http.csrf().disable();
super.configure(http);
}
}
也可以单独写一个配置类,只要当前项目能扫描的包下到即可
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.csrf().disable();//关闭csrf
super.configure(http);
}
}