首页 > 解决方案 > PrematureCloseException 的原因是什么?

问题描述

我正在使用spring WebFlux,我正在使用WebClient,它运行良好,我在日志中看到两次我有这个错误,我怎么知道这个连接问题发生在我身边(客户端)或服务器端关闭连接,我在这里复制错误:

reactor.netty.http.client.PrematureCloseException: Connection prematurely closed DURING response
    Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException

我的客户端代码与此代码相同:

public void consumeServerSentEvent() {
WebClient client = WebClient.create("http://SERVER-IP:SERVER-PORT/PATH_TO_API");
ParameterizedTypeReference<ServerSentEvent<String>> type
 = new ParameterizedTypeReference<ServerSentEvent<String>>() {};

Flux<ServerSentEvent<String>> eventStream = client.get()
  .uri("/stream-sse")
  .retrieve()
  .bodyToFlux(type);

eventStream.subscribe(
  content -> logger.info("Time: {} - event: name[{}], id [{}], content[{}] ",
    LocalTime.now(), content.event(), content.id(), content.data()),
  error -> logger.error("Error receiving SSE: {}", error),
  () -> logger.info("Completed!!!"));

}

标签: javaspring-bootspring-webflux

解决方案


推荐阅读