Java SpringWebFlux:如何将flux错误发送到客户端

Java SpringWebFlux:如何将flux错误发送到客户端,java,rest,reactive-programming,spring-webflux,Java,Rest,Reactive Programming,Spring Webflux,我有一个基本的REST控制器,它返回可能引起错误的流量: @GetMapping(value = "/foo", produces = MediaType.TEXT_EVENT_STREAM_VALUE) public Flux<Long> foo() { return Flux.interval(Duration.ofSeconds(2)).map(t -> 1/(3-t)).take(4); } 我们可以看到,服务器将发送0->0->1(类似地,客户机

我有一个基本的REST控制器,它返回可能引起错误的流量:

@GetMapping(value = "/foo", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
  public Flux<Long> foo() {
    return Flux.interval(Duration.ofSeconds(2)).map(t -> 1/(3-t)).take(4);
  }  
我们可以看到,服务器将发送0->0->1(类似地,客户机将为它们中的每一个运行doOnNext),但是服务器会抛出一个异常

org.springframework.web.HttpMediaTypeNotAcceptableException:无法 找到可接受的代表

客户端不会检测到流量错误(不运行doOnError),而是简单地读取流量上的onComplete。

当服务器端flux发出错误时,如何使客户端运行doError

是否尝试使用类似的方法。OneErrorResume(e->Mono.error(new NameRequiredException(HttpStatus.BAD_REQUEST,“username is required”,e))、String.class);您能详细说明一下您期望在HTTP级别发生的事情吗?i、 e.发生此错误时,SSE流的内容应该是什么?
webClient.get()
         .uri("/foo")
         .retrieve()
         .bodyToFlux(Integer.class)
         .doOnError(System.err::println)
         .doOnNext(System.out::println)
         .blockLast();