我是一名 java 7 开发人员(终于)在 java 8 中迈出了第一步。很多这些东西对我来说仍然是新的。我正在尝试使用 spring 5 WebClient,因为文档指出 RestTemplate 将被移走以支持 WebClient。
webClient
.method(HttpMethod.POST)
.uri(uriBuilder -> uriBuilder.pathSegment("api", "payments").build())
.body(BodyInserters.fromObject(createPostRequest(paymentConfirmationData)))
.accept(MediaType.APPLICATION_JSON)
.exchange()
.doAfterSuccessOrError((clientResponse, throwable) -> {
if (clientResponse.statusCode().is5xxServerError()
|| clientResponse.statusCode().is4xxClientError()) {
logger.error("POST request naar orchestration layer mislukt, status: [{}]", clientResponse.bodyToMono(String.class));
Mono.error(throwable);
} else {
logger.error("POST request naar orchestration layer gelukt");
}
})
.block();
我试图在 .doAfterSuccesOrError 中引发异常。但是我不能使用 throw throwable 原因然后它只是在它周围添加一个 try catch 。我读了几篇文章,这是我最后一次尝试添加 Mono.error(throwable) 但由于没有返回,我很确定这是没有效果的原因。
这是一个 POST 调用,成功时返回 204 No Content。目前我得到的是 422,尽管这在这个特定问题中并不重要。
有人可以教我如何将异常抛出回调用环境吗?