当我使用这样的路由统计时,我正在使用 Spring cloud gateway(它工作正常):
@Bean
RouteLocator routeLocator(RouteLocatorBuilder builder) {
return builder.routes()
.route((r) -> r.path("/customers/**").uri("http://localhost:8081/"))
.route((r) -> r.path("/products/**").uri("http://localhost:8082/"))
.build();
}
Run Code Online (Sandbox Code Playgroud)
但是当我想使用带有 DiscoveryClientRouteDefinitionLocator 的动态路由时,我的功能不起作用:
@Bean
DiscoveryClientRouteDefinitionLocator definitionLocator(
ReactiveDiscoveryClient rdc,
DiscoveryLocatorProperties properties) {
return new DiscoveryClientRouteDefinitionLocator(rdc, properties);
}
Run Code Online (Sandbox Code Playgroud)
这是我的 application.properties :
server.port=8888
spring.application.name=gateway-service
spring.cloud.discovery.enabled=true
Run Code Online (Sandbox Code Playgroud)
当我调用这个 uri http://localhost:8888/PRODUCT-SERVICE/products 我得到:
Whitelabel Error Page
This application has no configured error view, so you are seeing this as a fallback.
Tue Dec 22 00:42:19 WEST 2020
[97127699-3] There was an unexpected error (type=Internal Server Error, status=500).
Run Code Online (Sandbox Code Playgroud)
控制台中生成的异常: …