ファイルを送信中に、バイト配列を受信します。Webflux で配列を受信するときに常に問題が発生します。次のようなエラーがスローされます。
org.springframework.core.io.buffer.DataBufferLimitException: Exceeded limit on max bytes to buffer : 262144
at org.springframework.core.io.buffer.LimitedDataBufferList.raiseLimitException(LimitedDataBufferList.java:101)
Suppressed: reactor.core.publisher.FluxOnAssembly$OnAssemblyException
これをWebFluxで解決する方法をご存知ですか?
ベストアンサー1
これは私にとってはうまくいきました:
@Bean
構成クラスまたはメイン クラスの 1 つにを作成しますSpringBootApplication
。@Bean public WebClient webClient() { final int size = 16 * 1024 * 1024; final ExchangeStrategies strategies = ExchangeStrategies.builder() .codecs(codecs -> codecs.defaultCodecs().maxInMemorySize(size)) .build(); return WebClient.builder() .exchangeStrategies(strategies) .build(); }
次に、 を使用する目的のクラスに移動します
WebClient
。@Service public class TestService { @Autowired private WebClient webClient; public void test() { String out = webClient .get() .uri("/my/api/endpoint") .retrieve() .bodyToMono(String.class) .block(); System.out.println(out); } }