問題タブ [spring-integration]
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.
spring - スタンドアロン ESB の組み込み代替手段としての Spring Integration
Spring Integrationプロジェクトを組み込み ESB として使用した経験のある人はいますか?
私は次のようなユースケースで非常に興味深いです:
- スケジュールに基づいてディレクトリからファイルを読み取る
- JDBC データ ソースからデータを取得する
- その場でモジュールを開始/停止/再展開するモジュール性と可能性 (たとえば、1 つのモジュールがスケジュールに基づいてディレクトリをスキャンし、別のモジュールが jdbc データ ソースからクエリを呼び出すなど)
- 繰り返し/再試行ポリシー
アップデート:
「JDBC データ ソースからデータを取得する」以外のすべての質問に対する回答が見つかりました。技術的に可能ですか?
java - Spring Integration 1.0 RC2: ストリーミング ファイル コンテンツ?
私はこれに関する情報を見つけようとしてきましたが、Spring Integration フレームワークが未熟なため、あまり運がありませんでした。
これが私の希望するワークフローです:
新しいファイルは「Incoming」ディレクトリに配置されます
ファイルは file:inbound-channel-adapter を使用して取得されます
ファイルの内容は、一度に N 行ずつ「ステージ 1」チャネルにストリーミングされ、そこで行が中間 (共有) 表現に解析されます。
この解析された行は、複数の「ステージ 2」チャネルにルーティングされます。
各「ステージ 2」チャネルは、利用可能な N 行に対して独自の処理を行い、それらを最終的な表現に変換します。このチャネルには、あるチャネルの処理が他のチャネルよりも大幅に遅くなった場合に、ステージ 2 チャネルが過負荷にならないようにするキューが必要です。
N 行の最終表現がファイルに書き込まれます。手順 4 のルーティング先と同じ数の出力ファイルが存在します。
**上記の「N」は、[1、メモリに適切に収まるものは何でも]から一度に読み取る妥当な行数を表しますが、完全なファイルの行数よりも常に少ないことが保証されています。*
Spring Integration でストリーミング (ステップ 3、4、5)を達成するにはどうすればよいですか? ファイルをストリーミングせずに実行するのはかなり簡単ですが、ファイルが大きすぎて、ファイル全体をメモリに読み込むことができません。
補足として、Spring Integration を使用しないこのワークフローの実用的な実装がありますが、プロジェクトの他の場所で Spring Integration を使用しているため、ここで試して、それがどのように機能し、結果がどのようになるかを確認したいと思います。コードの長さと明瞭さを比較します。
spring - Spring統合:WebサービスをFIFOキューに接続する
私はまだSpringIntegrationに苦労しています-これが私のシナリオです:
- WebサービスがクライアントAからリクエストを受け取ります
- Webサービスはリクエストをキューに入れます
- キューコンシューマーはメッセージFIFOを処理し、Webサービスにルーティングされる応答を送信します
- WebサービスはクライアントAに応答を送り返します
メッセージをすべてこのキューにフィードする複数のWebサービスがあり、それらが受信された順序で本当に処理されることを確認する必要があります。
スプリングインテグレーションのどの部分を一緒に配線する必要がありますか?
java - Java Event Processing Framework
I'm looking for a lightweight framework that builds on top of the Process Manager pattern:
http://www.eaipatterns.com/ProcessManager.html
I'm specifically interested in using this for doing event processing whereby I'm interested in the success or failure outcome of a particular event and passing a message on to another "stage" based on this outcome. There may be other outcomes aside from success and failure, so I want something that's a little flexible...
I'm not really looking for a heavyweight ESB to handle this sort of situation since it seems like complete overkill. Spring integration looks ok for this sort of thing. Can anybody recommend any other frameworks to help achieve this?
The alternative is to build something using the basic Spring framework...
configuration - スプリング統合遅延要素
春の統合を構成しようとしていて、基本的に retryFilter とキューの間にある要素を使用したいと考えています。
retryFilter からキューに直接移動するとすべて正常に動作しますが、間に遅延要素を配置するとすぐに、構成ファイルのロードに失敗します (エラーがある場合に発生します)。
このセクションの構成は次のとおりです。
どんな助けでも大歓迎です。
デイブ
apache-flex - Flex + Spring + BlazeDS + Glassfish + OpenMQ - OpenMQ の web-application-config をどのように構成しますか?
ActiveMQ を使用して Tomcat で作業するための spring-flex-testdrive の例 (トピックを使用してメッセージを発行する JMS チャット アプリケーション) があり、OpenMQ を使用して Glassfish でこの例を実行したいと考えています。
これは、オンラインで見つけた関連するサンプル構成ですが、Flex/Glassfish/OpenMQ/BlazeDs/Spring-Integration テクノロジの組み合わせではうまく機能しません。(リンク)
Glassfish にデプロイできますが、宛先に接続できません。ActiveMQ を OpenMQ クラス/Bean 宣言に置き換えるだけだとフォーラムが言及しているのを見たことがありますが、そうではないようです。OpenMQ 用に web-application-context.xml をどのように構成しますか? 一般的な落とし穴は何ですか?
ありがとう。
java - Spring Integration Proxy Gateway のインバウンド トランスフォーマー
次のようなプロセスを構成したいと思います。
事実上、Spring Integration が作成する隠しチャネルに何らかの方法でアクセスし、戻りメッセージのペイロードを別のメッセージ タイプに変換したいと考えています。
簡単な解決策は、最初はゲートウェイで default-reply-channel を構成することのように見えるかもしれません。問題は、OSGi を使用してバンドル間でチャネルを共有していることです。Service Activator は Bundle "B" によって提供され、着信要求に共有チャネルを提供します (データ プロバイダー サービスとして機能します)。バンドル「A」はデータを必要とするため、それを要求しますが、別の形式の結果が必要です。バンドル「B」がバンドル「A」によって指定されたデフォルト応答チャネルを使用できる場合、バンドル「A」はそれを共有する必要があることに注意してください。それはすべて公平で問題ありませんが、OSGi に循環依存関係があり、何も開始しません。
ここでの別の解決策は、Service Activator で出力チャネルを定義することのようですが、これには少し異なる問題があります。バンドル「B」から出力チャネルを共有すると仮定すると、循環依存の問題は軽減されましたが、誰かがバンドル「A」から何かを要求すると、出力チャネルに接続されているすべての人に応答が送信されます。これも望ましくありません.
[編集: ここで言いたいのは、「B」がそのサービス アクティベーターの入力チャネルと出力チャネルの両方を共有している場合、「B」の出力チャネルにバインドされている人は誰でも、「B」の入力に対する誰かの要求の結果を受け取るということです。チャネル -- 望ましい動作は、応答がリクエスタに向けられることです。
ここでのトランスフォーマーは、バンドル A のコンテキストでのみ意味があることに注意してください。バンドル B はサービスを提供します (すべての意図と目的のために、私が制御できないものです)。バンドル A のニーズに固有の変換は、バンドル A に存在する必要があります。]
したがって、私が本当に必要だと思うのは、動的プロキシ ゲートウェイへの応答でトランスフォーマーを構成できるようにすることですが、Spring Integration マニュアルでそのようなデバイスを見つけることができないので試してみてください。いつものように、助けていただければ幸いです。
--
編集2 :ここで他の2つの戦術を試みました:
バンドル B の OSGi 共有チャネルを参照するサービス アクティベーターを使用する
その結果、返された要素は GenericMessageType であり、これを変換できる可能性がありました。GenericMessageType は実際には、応答メッセージではなく、サービス アクティベーターが指し示す必要がある「send」メソッドのブール値の結果です。したがって、この方法は機能しません。
ヘッダーエンリッチャーを使用して REPLY_CHANNEL を設定し、返信チャネルを値ではなく参照として渡します。
この手法は機能しませんでした。ゲートウェイの default-reply-channel が設定されている場合 (および default-reply-channelを設定する必要がある場合)、REPLY_CHANNEL ヘッダー要素が無視されるようです。
spring - Spring IntegrationアプリをTomcatにデプロイする方法は?
基本的なSpringIntegrationアプリケーションをセットアップするための「SpringIntegrationin10minutes」チュートリアルを完了しました。このアプリケーションをTomcatにデプロイし、入力チャネルをサーバー上でライブにして、出力をクライアントに送り返したいのですが、この例を見つけるのに苦労しています。
誰かがこれを行う方法のチュートリアルまたは他の種類のガイダンスへのリンクを私に提供できますか?すべての助けは大歓迎です!
java - 複数のコンポーネントでグローバル ID をログに記録する
JMS と Spring Integration を使用して接続された複数のアプリケーションを含むシステムがあります。メッセージは一連のアプリケーションに沿って送信されます。
[アプリA] -> [アプリB] -> [アプリC]
メッセージ ヘッダーにグローバル ID を設定して、システム全体で各メッセージのライフサイクルを追跡できるようにします。
システム内のログ メッセージの先頭にメッセージ グローバル ID を追加できるようにしたいと考えています。
他の誰かがこれをしましたか?この変数をスレッドに関連付けて、将来のメソッドでアクセスできるようにする方法はありますか? システムのメソッドで変数を渡したくありません。
java - DefaultMessageListenerContainer が Websphere MQ で機能しない
spring 2.5.6 と spring-integration 1.0.3 と MQ client 6.0.2.2 を使用しています
message-driven-channel-adapter にメッセージ セレクターを追加する必要がありましたが、次のエラーが発生しました。
MQJMS2008: failed to open MQ queue ; nested exception is com.ibm.mq.MQException: MQJE001: Completion Code 2, Reason 2085
ActiveMQ をテスト ハーネスとして使用した場合に機能します。
私の構成:
以前の構成に戻せば問題ありません (ただし、メッセージ セレクターはありません!)。