Spring WebClient问题连接被对等方重置

问题描述

Spring WebClient出现问题,错误就像服务器重置conn一样。但是当我用RestTemplate替换时,问题消失了。有什么帮助吗?

2020-10-08T23:30:36.515+07:00|2|ERROR|global-spi-engine|2417bb1abef50e40,2417bb1abef50e40,true,|73700|reactor-http-nio-8|o.s.w.s.adapter.HttpWebHandlerAdapter|[5e52ab55] 500 Server Error for HTTP POST "/requests"
java.io.IOException: Connection reset by peer
    at sun.nio.ch.FiledispatcherImpl.read0(Native Method) ~[na:1.8.0_241]
    Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException: 
Error has been observed at the following site(s):
    |_ checkpoint ⇢ Request to GET https://*** [DefaultWebClient]
    |_ checkpoint ⇢ Handler com.ascendcorp.orbit.globalspiengine.service.api.controller.SpiController#call(Map,AbstractSPIRequestDTO) [dispatcherHandler]
    |_ checkpoint ⇢ org.springframework.cloud.sleuth.instrument.web.TraceWebFilter [DefaultWebFilterChain]
    |_ checkpoint ⇢ org.springframework.boot.actuate.metrics.web.reactive.server.MetricsWebFilter [DefaultWebFilterChain]
    |_ checkpoint ⇢ HTTP POST "/requests" [ExceptionHandlingWebHandler]


    HttpHeaders headers2 = new HttpHeaders();
        headers2.setAll(request.getHeaders());
        httpentity entity = new httpentity(headers2);
        ResponseEntity<String> response = restTemplate.exchange(request.getUrl(),HttpMethod.GET,entity,String.class);
        return Mono.justOrEmpty(response);
    //    WebClient.RequestBodySpec requestBodySpec = WebClient.builder()
    //        .filters(exchangeFilterFunctions -> {
    //          exchangeFilterFunctions.add(logRequest());
    //          exchangeFilterFunctions.add(logResponse());
    //        }).build()
    //        .method(request.getmethod())
    //        .uri(request.getUrl())
    //        .contentType(MediaType.parseMediaType("application/json"))
    //        .contentLength(0)
    //        .header("Authorization",request.getHeaders().get("Authorization"))
    //        .header("Accept","*/*");
    ////    requestBodySpec.body(BodyInserters.fromValue(request.getBodyContent()));
    //
    //    return requestBodySpec.exchange()
    //        .flatMap(clientResponse -> {
    //          try {
    //            return clientResponse.toEntity(Class.forName("java.lang.String"));
    //          } catch (Exception e) {
    //            throw new ServerWebInputException("Class not found: " + e);
    //          }
    //        });

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)