Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SpringWebFlux:如何访问HandlerFilterFunction中的请求主体_Java_Filter_Reactive Programming_Spring Webflux_Reactor Netty - Fatal编程技术网

Java SpringWebFlux:如何访问HandlerFilterFunction中的请求主体

Java SpringWebFlux:如何访问HandlerFilterFunction中的请求主体,java,filter,reactive-programming,spring-webflux,reactor-netty,Java,Filter,Reactive Programming,Spring Webflux,Reactor Netty,我试图从WebFlux的HandlerFunctionFunction访问请求正文,但我得到java.lang.IllegalStateException:只允许一个连接接收订户。 我想做一些类似于下面代码块的事情 公共类示例HandlerFilterFunction 实现HandlerFilterFunction{ @凌驾 公共Mono筛选器(服务器请求服务器请求, handler函数(handler函数){ if(serverRequest.pathVariable(“name”).equa

我试图从WebFlux的
HandlerFunctionFunction
访问请求正文,但我得到
java.lang.IllegalStateException:只允许一个连接接收订户。

我想做一些类似于下面代码块的事情

公共类示例HandlerFilterFunction
实现HandlerFilterFunction{
@凌驾
公共Mono筛选器(服务器请求服务器请求,
handler函数(handler函数){
if(serverRequest.pathVariable(“name”).equalsIgnoreCase(“test”)){
return serverRequest.bodyToMono(Player.class)
.doOnNext(loggerService::logAndDoSomethingElse)
.then(handlerFunction.handle(serverRequest);
}
返回handlerFunction.handle(serverRequest);
}
}
我也尝试了
serverRequest.bodytomino(Player.class).cache()
,但没有成功

更新:添加处理程序和路由器功能

处理函数

@组件
公共级演奏手{
@自动连线
私人终场球员位置;
公共玩家管理员(玩家存储库){
this.palyerRepository=playerRepository;
}
公共Mono savePlayer(服务器请求){
Mono id=request.bodyToMono(Player.class)
.map(playerRepository::保存)
.map(播放器::getId);
返回ok().body(id,String.class);
}
}
路由器功能


@豆子
公共路线功能路线(PlayerHandler PlayerHandler){
返回路由函数
.route(POST(“/players/”),playerHandler::save)
.filter(新示例HandlerFilterFunction());
}
记录器服务


公共Mono T Log和Dosomethingelse(T){
----审计业务逻辑----
返回loggerRepository.save(asJsonb);
}

有人能帮我吗?谢谢

发布你尝试过的代码,而不是“类似的东西”@Thomas这正是我遇到的代码tried@user3595026-你找到解决办法了吗?我也有同样的问题。@Haimke还没有