java - 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!!!"));
}
解决方案
推荐阅读
- java - Spring Cloud Contract:为具有不同或部分不同期望的多个消费者编写合约测试
- bash - 匹配并复制同名目录的内容到同名的新目录?
- nginx - 查询字符串的 Nginx 重写规则
- reactjs - 如何在 ReactJS 中以 JSON 格式显示嵌套数组数据?
- javascript - 在 d3.js 中对同一数据集实现多个过滤器
- android - 使用 Retrofit2 和 Kotlin 在正文中发布数据:无法创建呼叫适配器
- hyperledger-fabric - 在 Hyperledger Fabric v1.3 中的现有组织中添加新对等点导致新对等点失败
- javascript - 在 ES6 中提取数据
- mysql - 在查询中获取空而不是重复值
- function - Golang闭包不存储捕获的变量?