UnsupportedOperationException выброшено для ресурса webflux - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь воспроизвести некоторый пример кода, подобный этому:

@GetMapping("/unsupport")
  public Mono<Void> unsupport(ServerWebExchange exchange) {

    return exchange.getResponse().writeWith(Mono.just(exchange.getResponse().bufferFactory().wrap("unsupport".getBytes(StandardCharsets.UTF_8))));


  }

А потом я получил UnsupportedOperationException со стеком ниже:

в java.util.Collections $ UnmodifiableMap.put (Неизвестный источник) в org.springframework.http.HttpHeaders.set (HttpHeaders.java:1451) в org.springframework.http.HttpHeaders.setContentType (HttpHeaders.java:854) в org.springframework.http.codec.EncoderHttpMessageWriter.updateContentType (EncoderHttpMessageWriter.java:132) в org.springframework.http.codec.EncoderHttpMessageWriter.write (EncoderHttpMessageWriter.java:100) в org.springframework.http.codec.EncoderHttpMessageWriter.write (EncoderHttpMessageWriter.java:167) в org.springframework.web.reactive.result.method.annotation.AbstractMessageWriterResultHandler.writeBody (AbstractMessageWriterResultHandler.java:146) в org.springframework.web.reactive.result.method.annotation.ResponseEntityResultHandler.lambda $ handleResult $ 2 (ResponseEntityResultHandler.java:174) в reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap (FluxFlatMap.java:141) at реактор.core.publisher.MonoFlatMap.subscribe (MonoFlatMap.java:53) в reactor.core.publisher.MonoOnErrorResume.subscribe (MonoOnErrorResume.java:44) в reactor.core.publisher.MonoFlatMap $ FlatMapMain.onNext (MonoFlatMap.java:150) в reactor.core.publisher.Operators $ MonoSubscriber.complete (Operators.java:1080) в reactor.core.publisher.MonoFlatMap $ FlatMapInner.onNext (MonoFlatMap.java:241) в reactor.core.publisher.FluxOnErrorResume $ ResumeSubscriber.onNext (FluxOnErrorResume.java:73) в reactor.core.publisher.Operators $ MonoSubscriber.complete (Operators.java:1080) в reactor.core.publisher.MonoFlatMap $ FlatMapMain.onNext (MonoFlatMap.java:144) в reactor.core.publisher.Operators $ MonoSubscriber.complete (Operators.java:1080) в reactor.core.publisher.MonoZip $ ZipCoordinator.signal (MonoZip.java:241) at processor.core.publisher.MonoZip $ ZipInner.onNext (MonoZip.java:323) в reactor.core.publisher.Operators $ ScalarSubscription.request (Operators.java:1637) в reactor.core.publisher.MonoZip $ ZipInner.onSubscribe (MonoZip.java:312) at реактор.кор.публикатор.МоноJust.subscribe (MonoJust.java:54) в processor.core.publisher.Mono.subscribe (Mono.java:3080) в processor.core.publisher.MonoZip.subscribe (MonoZip.java:128) в processor.core.publisher.MonoFlatMap.subscribe (MonoFlatMap.java:60) в processor.core.publisher.Mono.subscribe (Mono.java:3080) в reactor.core.publisher.FluxOnErrorResume $ ResumeSubscriber.onError (FluxOnErrorResume.java:97) в reactor.core.publisher.FluxPeekFuseable $ PeekFuseableSubscriber.onError (FluxPeekFuseable.java:222) в reactor.core.publisher.FluxPeekFuseable $ PeekFuseableSubscriber.onError (FluxPeekFuseable.java:222) в reactor.core.publisher.Operators $ MonoSubscriber.onError (Operators.java:1123) в reactor.core.publisher.MonoIgnoreThen $ ThenAcceptInner.onError (MonoIgnoreThen.java:300) в reactor.core.publisher.MonoFlatMap $ FlatMapMain.secondError (MonoFlatMap.java:185) в reactor.core.publisher.MonoFlatMap $ FlatMapInner.onError (MonoFlatMap.java:251) в reactor.core.publisher.MonoIgnoreThen $ ThenIgnoreMain.drain (MonoIgnoreThen.java:133) в reactor.core.publisher.MonoIgnoreThen $ ThenIgnoreMain.ignoreDone (MonoIgnoreThen.java:185) в reactor.core.publisher.MonoIgnoreThen $ ThenIgnoreInner.onComplete (MonoIgnoreThen.java:234) в org.springframework.http.server.reactive.ChannelSendOperator $ WriteCompletionBarrier.onComplete (ChannelSendOperator.java:373) в reactor.core.publisher.MonoIgnoreElements $ IgnoreElementsSubscriber.onComplete (MonoIgnoreElements.java:80) в reactor.core.publisher.FluxConcatIterable $ ConcatIterableSubscriber.onComplete (FluxConcatIterable.java:115) в reactor.core.publisher.MonoNext $ NextSubscriber.onComplete (MonoNext.java:96) вorg.springframework.http.server.reactive.WriteResultPublisher $ State.publishComplete (WriteResultPublisher.java:229) в org.springframework.http.server.reactive.WriteResultPublisher.publishComplete (WriteResultPublisher.java:69) в org.springframework.http.server.reactive.AbstractListenerWriteFlushProcessor $ State $ 3.writeComplete (AbstractListenerWriteFlushProcessor.java:250) в org.springframework.http.server.reactive.AbstractListenerWriteFlushProcessor $ State $ WriteResultSubscriber.onComplete (AbstractListenerWriteFlushProcessor.java:374) в org.springframework.http.server.reactive.WriteResultPublisher $ State.publishComplete (WriteResultPublisher.java:229) в org.springframework.http.server.reactive.WriteResultPublisher.publishComplete (WriteResultPublisher.java:69) в org.springframework.http.server.reactive.AbstractListenerWriteProcessor.changeStateToComplete (AbstractListenerWriteProcessor.java:209) в org.springframework.http.server.reactive.AbstractListenerWriteProcessor.access $ 400 (AbstractListenerWriteProcessor.java:44) в org.springframework.http.server.reactive.AbstractListenerWriteProcessor $ State $ 3.onWritePossible (AbstractListenerWriteProcessor.java:289) в org.springframework.http.server.reactive.AbstractListenerWriteProcessor.onWritePossible (AbstractListenerWriteProcessor.java:103) в org.springframework.http.server.reactive.ServletServerHttpResponse $ ResponseBodyWriteListener.onWritePossible (ServletServerHttpResponse.java:238) в org.apache.coyote.Response.onWritePossible (Response.java:700) в org.apache.catalina.connector.CoyoteAdapter.asyncDispatch (CoyoteAdapter.java:188) в org.apache.coyote.AbstractProcessor.dispatch (AbstractProcessor.java:232) в org.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight.java:49) в org.apache.coyote.AbstractProtocol $ ConnectionHandler.process (AbstractProtocol.java:790) в org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun (NioEndpoint.java:1468) в org.apache.tomcat.util.net.SocketProcessorBase.run (SocketProcessorBase.java:49) в java.util.concurrent.ThreadPoolExecutor.runWorker (Неизвестный источник) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (неизвестный источник) в org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run (TaskThread.java:61) at java.lang.Thread.run (неизвестный источник)

HttpHeaders создается неизменным образом.

Я что-то не так делаю или это ошибка?

Спасибо

Leon

...