問題タブ [spring-webflux]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
1879 参照

spring-boot - Spring Boot + Kotlin アノテーション エラー

Kotlin で記述された Spring Boot 2.0.0.M2(WebFlux を使用) アプリケーションがあります。

定型的な構成を避けるために、テストケースの「注釈」を定義/宣言することに慣れています。何かのようなもの:

...その後、私のテストでは次のように使用します。

問題は、Kotlin が提供する注釈を使用して同じことを達成できないことです。

私はthis annotation is not applicable to target 'class'内側を取得していPersonWorkflowTestます。私が Java のものを使用する場合、すべて問題ありませんが、一方で、これらの警告が表示されます。これは、私が実際に取り除こうとしているものです:)

Spring Boot での Kotlin Annotation エラー

0 投票する
1 に答える
15770 参照

spring-boot - Java Flux リストを外部ソースから 1 つのリストに連結する方法

spring-boot 2.0 レスト コントローラーで、必要に応じて動作する次のコードを作成しました。

私の問題は、外部データソースから同じことをしようとしたことに起因しています。次のテスト ケースを作成しました。

myRepository は次のとおりです。

test4 というラベルの付いたコードで、コード ヒント エラーが表示されます。

型の不一致: Flux< List < String >> から Publisher < ? に変換できません Publisher < ? を拡張します。オブジェクトを拡張 >>

いくつか質問があります:

  1. Flux はパブリッシャーだと思いましたか? では、なぜエラーが発生するのでしょうか?
  2. テスト3と同じ結果を出力するように、テスト4で何が間違っていますか?

予想される出力は次のとおりです: [["one","two","three","four","five","six"]]

0 投票する
1 に答える
3705 参照

junit - WebTestClient と ControllerAdvice を使用したユニット テスト スプリング コントローラー

コントローラーと特定のケースを単体テストしようとしています:私のサービスはMono.Emptyを返し、NotFoundExceptionをスローし、404例外が発生していることを確認したくありません

これが私のコントローラーです:

これが私のコントローラーのアドバイスです:

そして私のテスト:

NotFoundException が発生していますが、404 ではなく 500 エラーです。これは、アドバイスが呼び出されていないことを意味します

スタックトレース :

何か案が ?

0 投票する
2 に答える
4698 参照

spring - Spring Web-Flux:リクエストに応じてFluxをWebクライアントに返す方法は?

スプリング ブート 2.0.0.BUILD_SNAPSHOT とスプリング ブート webflux 5.0.0 を使用していますが、現在、要求に応じてフラックスをクライアントに転送することはできません。

現在、イテレータからフラックスを作成しています:

そして、リクエストに応じて、私は単純にやっています:

localhost:8080/all10 秒後にローカルで呼び出すと、503ステータス コードが表示されます。/allまた、次を使用してリクエストしたときのクライアントと同様にWebClient

何も起こりません。データは転送されません。

代わりに次のことを行うと:

それは働いています。通常、フラックスを使用せずにデータを転送するため、すべてのデータのロードがすでに完了し、クライアントに転送されたばかりだからだと思います。

それらのデータを要求する Web クライアントにデータをストリーミングするフラックスを取得するには、何を変更する必要がありますか?

編集

Ignite cache内にデータがあります。だから私getAllIteratorはigniteキャッシュからデータをロードしています:

編集

flux.complete()@Simon Basléが提案したように追加:

ブラウザの503問題を解決します。しかし、それは の問題を解決しませんWebClient。データはまだ転送されていません。

編集3

publishOnで使用Schedulers.parallel():

結果は変わりません。

ここで、WebClient が受け取るものを投稿します。

したがって、彼は 1 つのアイテム (35.000 以上のうち) を取得しているように見え、値は null であり、彼は後で終了しています。