Spring WebClient 错误 - Reactor.core.publisher.LambdaMonoSubscriber 无法转换为类 org.springframework.web.client.RestClient

问题描述 投票:0回答:1

以下是我已经实现的休息服务

RestClient.RequestHeadersSpec<?> spec = (RestClient.RequestHeadersSpec<?>) webClient
                .post()
                .uri("/ValidateTaxId")
                .body(BodyInserters.fromValue(validateTaxIdRequestDTO))
                .accept(MediaType.APPLICATION_JSON)
                .header("jwtToken", validateTaxIdRequestDTO.getSessionHeaderRequestDTO().getJwtToken())
                .header("entidad", validateTaxIdRequestDTO.getSessionHeaderRequestDTO().getEntidad())
                .retrieve()
                .toEntity(ValidateTaxIdResponseDTO.class)
                .subscribe(result -> {
                    // get results as usual
                    final ValidateTaxIdResponseDTO validateTaxIdResponseDTO = result.getBody();
                    validateTaxIdResponseDTO.setMessage(result.getStatusCode().toString());

                    validateTaxIdResponseDTO.getSessionHeaderResponseDTO().setJwtToken(result.getHeaders().get("jwtToken").toString());

                    List<String> ti = result.getHeaders().get("transactionID");

                    // call the ui with the data
                    callback.operationFinished(validateTaxIdResponseDTO);

                }, error -> {

                    final ValidateTaxIdResponseDTO validateTaxIdResponseDTO = new ValidateTaxIdResponseDTO();

                    Throwable demo = error.getCause();

                    validateTaxIdResponseDTO.setValid(false);
                    validateTaxIdResponseDTO.setTaxIdFormated("");
                    validateTaxIdResponseDTO.setMessage("Error....");

                    // call the ui with the data
                    callback.operationFinished(validateTaxIdResponseDTO);

                });

我收到的错误如下。

java.lang.ClassCastException: class reactor.core.publisher.LambdaMonoSubscriber cannot be cast to class org.springframework.web.client.RestClient$RequestHeadersSpec (reactor.core.publisher.LambdaMonoSubscriber and org.springframework.web.client.RestClient$RequestHeadersSpec are in unnamed module of loader 'app')

为什么会发生错误?我可以处理它,但控制台中出现错误。

我按照这个例子。

https://howtodoinjava.com/spring-webflux/webclient-post-examples/#2-2-remote-api-returns-success-response-with-response-body

spring spring-boot spring-webflux spring-webclient
1个回答
0
投票

subscribe(...)
返回
Disposable
,而不是
RestClient.RequestHeadersSpec
。取下石膏即可发挥作用

© www.soinside.com 2019 - 2024. All rights reserved.