Java blockOptional()引发非法状态异常
我有一段代码Java blockOptional()引发非法状态异常,java,spring,spring-boot,spring-webflux,Java,Spring,Spring Boot,Spring Webflux,我有一段代码 java.lang.IllegalStateException: blockOptional() is blocking, which is not supported in thread reactor-http-nio-2 当我通过它发送请求时。预计它将返回一个可选,但当我最后删除.blockOptional()时,它会抱怨现在返回类型是Mono。此外,我还需要删除映射前面的块(转换为异步。是否可以使用替代方法来维护所需的返回类型并删除illegalStateExceptio
java.lang.IllegalStateException: blockOptional() is blocking, which is not supported in thread reactor-http-nio-2
当我通过它发送请求时。预计它将返回一个可选
,但当我最后删除.blockOptional()
时,它会抱怨现在返回类型是Mono
。此外,我还需要删除映射前面的块
(
转换为异步。是否可以使用替代方法来维护所需的返回类型并删除illegalStateException错误
final Mono<DataBuffer> join = DataBufferUtils.join(serverWebExchange.getRequest().getBody()); //put evrthing into mono
final Mono<DataBuffer> block = join; //make it blocking
final ObjectMapper objectMapper = new ObjectMapper();
final Mono<HashMap<String, Object>> body;
TypeReference<HashMap<String, Object>> typeRef
= new TypeReference<HashMap<String, Object>>() {
};
body = block.map(it -> {
try {
return objectMapper.readValue(it.asInputStream(), typeRef);
} catch (IOException e) {
throw new RuntimeException(" KILLED THE SERVER");
}
}); ////serialisation
return body.map(it -> URI.create(findWalletInstanceWithUserRef(it.get("playerExternalReference")
.toString()))).blockOptional();
final Mono join=DataBufferUtils.join(serverWebExchange.getRequest().getBody());//将evrthing放入Mono
final monoblock=join;//使其阻塞
最终ObjectMapper ObjectMapper=新ObjectMapper();
最终单体;
类型引用类型引用
=新类型引用(){
};
body=block.map(它->{
试一试{
返回objectMapper.readValue(it.asInputStream(),typeRef);
}捕获(IOE异常){
抛出新的RuntimeException(“杀死服务器”);
}
});///序列化
返回body.map(it->URI.create(findWalletInstanceWithUserRef)(it.get(“playerExternalReference”)
.toString()).blockOptional();
如果您有任何意见或建议,我们将不胜感激。谢谢您