Java SpringWebFlux:如何访问HandlerFilterFunction中的请求主体
我试图从WebFlux的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
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还没有