問題タブ [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-integration - Spring Integration と ServiceMix ESB の比較
プロジェクトで使用する EIP/ESB ソリューションを研究しています。最初の理由は、モジュールとさまざまなサブシステムを分離し、サードパーティ システムと簡単に統合できるように一部をリファクタリングすることです。将来的には、フィルタリング、分割などの多くの EIP が必要になると思います。Apache キャメル + サービス ミックス、Spring 統合を確認しました。ティブコやミュールも知っています。サービス ミックス + キャメルは、コンポーネントとプロトコルの豊富なスタックを提供しますが、activeMQ ブローカーと結びついていませんか。将来、tibco jms 実装を使用する必要がある場合はどうすればよいですか? Spring Integration - ESB ですか? 一部のモジュール間のローカル JVM メッセージングのためにいくつかのパイプ (チャネル) をメモリ内に配置し、メッセージングがクラスター内にあるときに分散する必要があります。それに加えて、SI は任意の jms 実装に関連付けられていますか?
したがって、要件: -ローカルおよび分散型の方法でのメッセージ ルーティング -JMS 実装の簡単な切り替え (現在は ActiveMQ、その後は tibco になる可能性があります) -軽量 -シンプル -標準プロトコル、コンポーネント、およびアダプターの完全なセット -Twitter のようなものは必要ありません。ゲーとそのようなもの
また、SI を ServiceMix のような分散 ESB にすることはできますか? Spring IoC を使用していますが、Mule などの他の ESB で SI を使用できますか? Spring + SI を使用することによる機能はありますか?
spring - JMSメッセージが配信されたときにSpringコンテキストを更新する
システムがJMSメッセージを受信したときに、アプリケーションコンテキストを更新したいと思います。これを行うために、ApplicationContextAwareを実装するサービスアクティベーターにメッセージを転送するSpring Integration jms:message-driven-channel-adapterを設定しました。このアクティベータ(ConfigurationReloaderクラス)は、ConfigurableApplicationContext#refresh()メソッドを呼び出します。
以下はサンプルコードスニペットです。
そして私のアクティベーター:
このようなメッセージを配信する場合、コンテキストはシャットダウン操作を開始しますが、DefaultMessageListenerContainerBeanのシャットダウンでスタックします。
新しい構成パラメーターがメッセージとともに配信されるため、JMSを介してこの操作を呼び出すことは私にとって非常に重要です。これは、最新のSpringCoreとSpring Integrationに基づいて、前面にDispatcherServletを備えた標準のSpringMVCアプリケーションです。また、コントローラーを介したConfigurationLoaderの呼び出しは正常に機能するため、JMS関連の問題であると確信しています。
デバッグしたところ、DefaultMessageListenerContainer#538行の呼び出し(lifecycleMonitorのwait()メソッド)の後でスタックします。
...モニターにnotify/notifyAllを呼び出す人がいないので、何らかのバグである可能性がありますか?
ヒントありがとうございます!
java - Spring Integration Gateway の静的および動的ヘッダー
以下を使用して、動的ヘッダーをゲートウェイに追加できます。
または、xml 構成に静的ヘッダーを追加することもできます。
現在、私のコードは上記のとおりで、動的なものは設定されていますが、静的なものは設定されていません。動的注釈を削除すると、静的注釈は機能しますが、明らかに動的注釈は機能しません。両方を機能させるにはどうすればよいですか?アノテーションを使用して静的ヘッダー値を設定することは可能ですか? 間違っている場合は訂正してください。ただし、構成ファイルの引数から動的なものを設定することはできないと思います - ( jira INT-1860 )を参照してください。
spring - SpringSource ToolSuite(Eclipse)のSpringBean構成ファイルでこの警告を取り除くにはどうすればよいですか。
警告を再現するために、次の小さなファイルがあります。
これにより、「参照されたBean'org.springframework.integration.config.ServiceActivatorFactoryBean#0'が見つかりません」という警告が生成されます。「stageEventChannel」と「stageScoreUpdateService」は、システム内のさまざまなチャネルとさまざまなサービスで再現できるため、警告の原因にはなりません。いずれにせよ、警告はServiceActivatorFactoryBeanを参照しているようですが、これは私が実装しているものではありません。
SpringSource ToolSuite2.8.0.RELEASEを使用しています。
フォーラムを検索したところ、非常によく似た問題を抱えているが応答がない人のこの投稿のみが見つかりました。
spring - Spring 統合 - DefaultMessageListenerContainer を構成して複数の宛先を解決する
複数の宛先トピックを解決するには、DefaultMessageListenerContainer を構成する必要があります。複数のコンテナーをインスタンス化したくないので、これを構成する方法や、それが可能かどうかさえ疑問に思っていました。
ありがとう
xml - xpath で xsi:type の値を取得する
xsi:type
要素の属性の値を返すための正しい XPath 式を決定しようとしていBody
ます。私は運が悪いと思われることをすべて試しました。私が読んだことに基づいて、これは近いように見えますが、明らかに正確ではありません. 最終的に休むことができるように、簡単なガイダンスはありますか?
返してほしいv20:SmsMessageV1RequestBody
java - Spring 統合の耐久性のある pub サブチャネル
Spring 統合 2.1 で耐久性のある pub サブチャネルを構成することは可能ですか?
quartz-scheduler - SpringIntegration2とQuartzスケジューラ
SpringIntegrationは初めてです。
Springファイルのinbound-channel-adapterを構成しました。例:
現在、これは正常に機能しています。ただし、これはクラスター環境にデプロイする必要があります。クラスタ内の複数のインスタンスが同じファイルを読み取ろうとしないようにしたいと思います。それで、これはそのような環境で機能しますか?
いいえの場合、次のようなQuartzスケジューラを使用できますか?
これはうまくいき、私の問題を解決しますか?または、トランザクションを使用する必要がありますか?
質問が明確であることを願っています。
ありがとう、アディ
java - Spring Integration ですべてのスレッドが終了するのを待っています
Spring Integration に大きく依存する自己実行可能な jar プログラムがあります。私が抱えている問題は、他の Spring Bean が完全に終了する前にプログラムが終了することです。
以下は、私が使用しているコードの縮小版です。必要に応じて、より多くのコード/構成を提供できます。エントリ ポイントは、Spring をブートストラップし、インポート プロセスを開始する main() メソッドです。
DataImporter には、Spring Integration ゲートウェイにメッセージを送信する単純なループが含まれています。これにより、データのポーリングという一般的なアプローチではなく、フローへのアクティブな「プッシュ」アプローチが提供されます。これが私の問題の出番です:
完全を期すために、フロー XML は次のようになります。
フローはアイテムを効果的に開始して処理しますが、startImport() ループが終了すると、メイン スレッドが終了し、すべての Spring Integration スレッドがすぐに破棄されます。これにより競合状態が発生し、プログラムの終了時に最後の (n) 項目が完全に処理されません。
処理しているアイテムの参照カウントを維持するという考えはありますが、フローがメッセージを複数のサービス アクティベーターに分割/ルーティングすることが多いため、これは非常に複雑であることがわかっています。つまり、各アイテムに「終了した"。
私が必要だと思うのは、Spring Bean がまだ実行されていないことを確認するか、ゲートウェイに送信されたすべてのアイテムが終了する前に完全に処理されたことを示すフラグを立てる方法です。
私の質問は、これらのいずれかを行うにはどうすればよいですか、または私が考えていなかった問題に対するより良いアプローチがありますか?
spring - 配列メソッドパラメーターのSpring式言語(SpEL)
String
オブジェクトとClass
オブジェクトをパラメーターとして受け取るBeanのメソッドを呼び出そうとしているSpringIntegrationプロジェクトがあります。渡したいクラスオブジェクトはありLong[].class
ますが、正しい構文がわかりません。私は以下のさまざまな組み合わせを試しましたが、役に立ちませんでした。
今のところ、呼び出しを別のJavaクラス(Class
型をハードコーディング)でラップし、SpELを介して呼び出しています。配列クラスパラメータの正しい構文は何ですか?