16.19. チャンネルを使用した JBoss ルールへのオブジェクト送信
- オブジェクトを JBoss Rules エンジンチャネルに送信するには、この DRL 構文を使用します。( ルール定義 の右側にある。)
channels["mychannel"].send(myobject); - 上記のコードを機能させるには、
mychannelをチャネルとして登録します。これには、 channels プロパティーセクションをjboss-esb.xml設定ファイルに追加します。必要な数のチャネルを定義します。特定のチャネル名ごとに、チャネルは設定ファイルに表示される順序で実行されます。 - 以下のチャネルがサポートされます。
ServiceChannel(デフォルト)。 channel-name、 service-category、および service-name を send-to 要素の属性として指定します。また、 async、 timeout、および set-payload-location などの任意の属性もあります(そのチャネルに送信されたオブジェクトは、新しいxhtmlメッセージに配置されます)。このコードは、属性の設定方法を示しています。<property name="channels"> <send-to channel-name="mychannel" service-category="cat1" service-name="svc1" /> </property>重要ターゲットサービスでinvmScope="GLOBAL"が定義されていることを確認します。- 独自の
org.drools.runtime.Channel実装クラスを使用してカスタムチャンネルを指定します。この send-to 属性は channel-class です。実装には、パブリックの no-arg コンストラクター が必要です。実装を設定可能にする場合は、setConfiguration(ConfigTree()メソッドが呼び出されるようにorg.jboss.soa.esb.Configurableインターフェイスを実装します。これにより、属性とサブプロパティー要素をカスタムチャネルに渡すことができます。このコードサンプルは、カスタムチャネルを設定する方法を示しています。<property name="channels"> <send-to channel-name="mychannel" channel-class="com.example.MyChannel" /> </property>