Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.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 反应堆静止单核返回:可用:真_Java_Spring_Reactor - Fatal编程技术网

Java 反应堆静止单核返回:可用:真

Java 反应堆静止单核返回:可用:真,java,spring,reactor,Java,Spring,Reactor,我一直在开发一个Java微服务,它使用Reactor来简化异步调用。在我的端点上,我有以下代码: @HystrixCommand @ApiOperation(value = "Resolve Dispute") @PostMapping(consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE, path = "/resolve") public Mono<RestResponse<RestRespons

我一直在开发一个Java微服务,它使用Reactor来简化异步调用。在我的端点上,我有以下代码:

@HystrixCommand
@ApiOperation(value = "Resolve Dispute")
@PostMapping(consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE, path = "/resolve")
public Mono<RestResponse<RestResponseResult>> resolveDispute(@RequestBody ResolveDisputeRequest requestJson, @RequestParam("appToken") String appToken) {
    if (apiAppToken.equals(appToken)) {
        EnumsUtils.getEnumValue(DisputeReason.values(), requestJson.getResolutionType(), requestJson);
        return facebookApiService.resolveDispute(requestJson).single();
    } else {
        throw new InvalidTokenException(requestJson.getUserId());
    }
}
然而,当我检查代码时,我意识到响应是在代码完成其“过程”之前发出的。答复如下:

{
  "scanAvailable": true
} 
这让我相信这与反应器的异步性质有关,但不符合我的需要

我应该如何正确使用反应堆以获得所需的响应?我不希望使用使调用阻塞的
block
方法

提前感谢您提供的任何帮助

祝你一切顺利


亚历杭德罗

这是反应性代码还是即时代码 EnumsUtils.getEnumValue(DisputeReason.values(),requestJson.getResolutionType(),requestJson);

我面临aspectj编织的一些问题


响应
{“scanAvailable”:true}
来自
mono.map(x->joinPoint.procedue())
,它应该是
mono.flatMap(x->(mono)joinPoint.process())

我们遇到了同样的问题,结果是错误的库导入:

我的进口:

import io.micrometer.shaded.reactor.core.publisher.Flux
import io.micrometer.shaded.reactor.core.publisher.Mono
应该是:

import reactor.core.publisher.Flux
import reactor.core.publisher.Mono

Hi Ricard,getEnumValue方法是即时的。然而,解决争议的方法是被动的。我应该补充一点,我已经解决了这个问题。我将spring启动版本更新为2.0.7,并且更新了反应堆依赖项。
import reactor.core.publisher.Flux
import reactor.core.publisher.Mono