Spring Webflux (netty) 处理程序无法解析包含大于 750 字节的 json 的 ServerRequest



我们最近开始尝试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")));
    }
}

相关内容

最新更新