我们最近开始尝试Spring Boot 2.0。具有以下处理程序代码:
@Component
public class DataStreamHandler {
public Mono<ServerResponse> pipeEvent(ServerRequest request) {
Mono<String> reqBody = request.bodyToMono(String.class);
String body = reqBody.block();
System.out.println(body);
return ServerResponse.ok().body(fromObject("OK"));
}
}
@Configuration
public class RouterConfig {
@Bean
public RouterFunction<ServerResponse> monoRouterFunction(DataStreamHandler dataStreamHandler) {
return route(POST("/pipeEvent"), dataStreamHandler::pipeEvent);
}
}
看来,处理程序无法解析包含大于750个字节的JSON的请求。当我搜索如何配置max-http-post尺寸时,我只找到了用于tomcat,jetty和procestow的解决方案。
如何将其配置为基础网络?
这是反应堆Betty中的一个已知问题 - 查看此问题的评论。
您不应该在处理程序内进行阻止操作。
您应该将代码更改为:
@Component
public class DataStreamHandler {
public Mono<ServerResponse> pipeEvent(ServerRequest request) {
return request.bodyToMono(String.class)
.doOnNext(System.out::println)
.then(ServerResponse.ok().body(fromObject("OK")));
}
}