Spring 云网关响应从未到达
Spring cloud gateway response never arrives
我正在试用 Spring 云网关 (Finchley.M5)。然后我基于 Springboot 2 (2.0.0.M7):
构建了这个简单的项目
- 尤里卡
- Spring 云网关
- 一项服务(WebFlux
@RestController
)
直接询问服务时,响应如期到达:
但是当我尝试通过网关请求服务时,服务收到了请求(我向控制台打印了一条消息)但响应从未返回给客户端:
项目的回购在这里:https://github.com/julianobrasil/spring-gateway-test
[编辑 1]: 所以你不必克隆上面的 repo 来查看代码发生了什么,这里是:
1 - 网关
@SpringBootApplication
@EnableDiscoveryClient
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
@Bean
public RouteLocator routes(RouteLocatorBuilder builder) {
return builder.routes()
.route(r -> r.path("/service/**")
.rewritePath("/service/(?<path>.*)", "/${path}")
.uri("lb://mySimpleService"))
.build();
}
}
2 - 服务控制器
@RestController
public class MyController {
@GetMapping("/test")
Mono<String> getHello() {
System.out.println("I received a connection request");
return Mono.just("Hello, world!");
}
}
[编辑 2]: Spring Cloud 团队的某个人克隆了我的存储库并对其进行了测试。并报告说它工作得很好。显然,测试是在 Linux 系统中进行的(我是 运行 它在 windows 10 机器上)。
我发现真正的问题是一个典型的 windows 世界问题:防病毒。卡巴斯基阻止了 http 响应。关注对象:
我正在试用 Spring 云网关 (Finchley.M5)。然后我基于 Springboot 2 (2.0.0.M7):
构建了这个简单的项目- 尤里卡
- Spring 云网关
- 一项服务(WebFlux
@RestController
)
直接询问服务时,响应如期到达:
但是当我尝试通过网关请求服务时,服务收到了请求(我向控制台打印了一条消息)但响应从未返回给客户端:
项目的回购在这里:https://github.com/julianobrasil/spring-gateway-test
[编辑 1]: 所以你不必克隆上面的 repo 来查看代码发生了什么,这里是:
1 - 网关
@SpringBootApplication
@EnableDiscoveryClient
public class GatewayApplication {
public static void main(String[] args) {
SpringApplication.run(GatewayApplication.class, args);
}
@Bean
public RouteLocator routes(RouteLocatorBuilder builder) {
return builder.routes()
.route(r -> r.path("/service/**")
.rewritePath("/service/(?<path>.*)", "/${path}")
.uri("lb://mySimpleService"))
.build();
}
}
2 - 服务控制器
@RestController
public class MyController {
@GetMapping("/test")
Mono<String> getHello() {
System.out.println("I received a connection request");
return Mono.just("Hello, world!");
}
}
[编辑 2]: Spring Cloud 团队的某个人克隆了我的存储库并对其进行了测试。并报告说它工作得很好。显然,测试是在 Linux 系统中进行的(我是 运行 它在 windows 10 机器上)。
我发现真正的问题是一个典型的 windows 世界问题:防病毒。卡巴斯基阻止了 http 响应。关注对象: