我们最近开始尝试使用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-size我找到的解决方案只适用于tomcat,jetty和underow。
如何为底层网络配置它?
答案 0 :(得分:1)
这是反应堆贝蒂的一个已知问题 - look at this issue comment了解更多信息。
您不应该在处理程序中执行阻止操作。
您应该将代码更改为:
@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")));
}
}