問題タブ [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 投票する
2 に答える
11106 参照

spring - Flux を拡張/Publisher を実装し、s.onNext() を複数回呼び出すと、Spring 5 Reactive が失敗する

Spring 5 の新しいリアクティブ サポートを使い始めたばかりで、非同期データ生成をシミュレートしたいと考えていたところ、2 つの問題のある動作に気付きました。

1) s.onNext( String ) を複数回呼び出す:

この場合、スタックトレースは次のとおりです。

2) s.onNext( Alert.class -any DTO- ) を複数回呼び出す:

ログにエラーは表示されなくなりましたが、発信者は 500 応答コードとコンテンツ '[' を受け取ります

ログ:

onNext() を複数回呼び出せないのはなぜですか? どうすればそれができますか?

注:私はonNext一度呼び出すだけで問題なく動作します:

また

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

spring - Spring 5 M2 - リアクティブ - ServerSentEvent のシリアル化中にエラーが発生しました

Spring 5.0.0 M1 から M2 にアップグレードした後、このコードは機能しなくなりました (クラスSseEventからServerSentEventクラスに変更しました)。

例外は次のとおりです。

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

spring - Spring 5 Web Reactive - Hot Publishing - EmitterProcessor を使用して MessageListener をイベント ストリームにブリッジする方法

サンプル プロジェクトは次の場所にあります: https://github.com/codependent/spring5-playground

JMS キューから受信したメッセージを、メッセージをイベント ストリームとして発行するリアクティブ コントローラーにブリッジしたいと考えています。

つまり、メッセージが到着し、サブスクライバーがいない場合、後でサブスクライバーが送信されたくないので、EmitterProcessor を使用しています。

これは私のMessageListener です:

最後に、Rest Controller:

その動作をテストするために、このコントローラー メソッドを追加して、キューへの挿入をシミュレートしました。

ロードしたアプリケーションを起動した直後http://localhost:8080/accounts/1/alerts/live2、ブラウザはデータを待ちます。

次に、いくつかのメッセージを公開しますhttp://localhost:8080/mock/accounts/1/alerts/put

しかし、どれもブラウザに到達しません。これは最終的に 500 エラー (ログなし) で終了します。

手動で再試行した後、データの受信を開始します...

...しかし、他の多くの場合、何も得られません。

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

java - Spring http/web forward が spring-reactive で機能しない

あるコントローラーから別のコントローラーにリクエストを転送しようとしていますが、代わりに例外が発生します

java.lang.IllegalStateException: 'forward:/test2' という名前のビューを解決できませんでした。org.springframework.web.reactive.result.view.ViewResolutionResultHandler.lambda$resolveViews$5(ViewResolutionResultHandler.java:272) で ~[spring-web-reactive-5.0.0.BUILD-SNAPSHOT.jar:5.0.0.BUILD-スナップショット]

ここに私のコントローラがあります:

スプリングブートを使用しています

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

java - spring-boot-starter-web-reactive + spring-boot-starter-actuator は連携しませんか?

spring-boot-starter-actuator を試してみました。デフォルトの指示では、pom の spring boot プロジェクトに追加しましたが、問題なく動作しました。

spring-boot-starter-web-reactive を追加するとすぐにすべてが機能しなくなり、新しく作成されたリアクティブ エンドポイントは機能しますが、アクチュエーターは機能しなくなりました。また、以前に作業していた h2 /console も壊れていることに気付きました。

エラーも例外もありません。これらは機能しなくなります。

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

spring - HTTP エンドポイントが DTO の代わりに Flux/Mono インスタンスを返す利点

Spring Tips: Functional Reactive Endpoints with Spring Framework 5.0を見て、Springリアクターについて少し読んだことがありますが、よくわかりません。

Netty とスプリング リアクターがアクティブになっている場合、エンドポイントが直接の dto オブジェクト (jacksonified) ではなく、Flux/インスタンス (jacksonified) を返すことの利点は何ですか? Mono私は当初、リアクティブ ストリームは、http 要求/応答のコンテキストでは、サーバーがオープン チャネルを使用して受信者にデータをプッシュする websocket のように機能すると想定していましたが、そうではないようです。

また、実際にリアクティブ プログラミングで tomcat より netty が優れている点は何ですか?

これらの質問がばかげているように思われる場合は申し訳ありませんが、この新しいフレームワークの方向性の目的がよくわかりません。なぜそれが生まれ、どのように機能し、どのような問題を解決するのでしょうか?

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

spring - Spring 5 Web Reactive - WebClient を使用して Flux でストリーミングされたデータを取得するにはどうすればよいですか?

Mono現在のマイルストーン (M4) のドキュメントには、 usingを取得する方法の例が示されていますWebClient

text/event-streamWebClient を使用して(を返すサービスから) ストリーミングされたデータを Flux に取得するにはどうすればよいですか? 自動ジャクソン変換をサポートしていますか?

これは以前のマイルストーンで行った方法ですが、API が変更されており、それを行う方法が見つかりません。

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

java - Spring 5 を使用した実際のコントローラーの例: Web Reactive

Spring を使ってリアクティブ プログラミングの世界に関わりたいと思っています。私が気づいたように、それは2つの異なるパラダイムの間の選択を与えてくれます: アノテーションベース(私たち@Controllerによく知られている@RequestMapping)と反応的なもの( 「アノテーション地獄」を解決することを目的としています)。

私の問題は、典型的なリアクティブコントローラーがどのように見えるかを理解していないことです。コントローラー クラスで使用できる 3 つの概念的なインターフェイスがあります。

HandlerFunction<T>ServerRequest (1) -具体的なインスタンスを返す特定ごとにメソッドを定義し、HandlerFunction<T>これらのメソッドをルーターに登録します。右?

RouterFunction(2) および(3) -対応するFilterFunctionすべての を配置する特定の場所はありますか? または、各コントローラーで個別に行うことはできますか (以前は注釈アプローチで行っていたように)? もしそうなら、このコントローラーからこのルーター部分を適用するようにグローバルハンドラー (もしあればルーター?) に通知するにはどうすればよいですか?RequestPredicateHandlerFunction

これが、リアクティブコントローラーの「テンプレート」の見方です。

そして最後に、注釈を付けずにコントローラーであると言うにはどうすればよいでしょうか?

Spring リファレンスと、公式ブログでこの問題に関連するすべての投稿を読みました。たくさんのサンプルがありますが、それらはすべて文脈から引き出されており (IMHO)、全体像を組み立てることはできません。

これらの機能間の相互作用を整理する方法について、実際の例と優れた実践例を提供していただければ幸いです。