概要
インバウンド通信を使用するには,次のコンポーネントを使用します.

ActivationSpecDeployer- インバウンド通信で利用されるアクティベーションスペックを設定するためのコンポーネントです.
MessageEndpointFactory- インバウンド通信で利用されるメッセージエンドポイントを生成するためのコンポーネントです.
JMSContainer- 受信したJMSメッセージをアプリケーションコンポーネントにバインドし,リスナメソッドを呼び出すコンポーネントです.
MessageEndpointActivator- インバウンド通信によるメッセージの受信を開始・終了するコンポーネントです.
メッセージエンドポイントの設定
ActivationSpecDeployer
ActivationSpecDeployerは,
リソースアダプタが提供するアクティベーションスペックを利用可能にするためのコンポーネントです.
ActivationSpecDeployerの実装クラスを以下に示します.
org.seasar.jca.deploy.impl.ActivationSpecDeployer
プロパティ
| プロパティ | 必須 | 説明 | デフォルト |
|---|---|---|---|
activationSpecClassName |
Yes |
リソースアダプタが提供する,
javax.resource.spi.ActivationSpecの実装クラスを指定します.
|
N/A |
メソッド
| メソッド | 説明 |
|---|---|
setProperty(String key, String value) |
リソースアダプタ固有のプロパティを指定します. |
リソースアダプタ固有のプロパティ
リソースアダプタ固有のプロパティは,使用するリソースアダプタのドキュメントを参照してください. 主なプロダクトのドキュメントを以下に示します.
- Apache ActiveMQ
- Sun Generic Resource Adapter for JMS の「Activation Spec Properties」
MessageEndpointFactory
MessageEndpointFactoryは,
リソースアダプタからJMSメッセージを受け取るコンポーネントを生成するコンポーネントです.
MessageEndpointFactoryの実装クラスを以下に示します.
org.seasar.jms.container.impl.JMSMessageEndpointFactory
プロパティ
| プロパティ | 必須 | 説明 | デフォルト |
|---|---|---|---|
listenerType |
No | リスナのインタフェースを指定します. | MessageListener
|
endpointClass |
No | listenerTypeプロパティで指定されたリスナインタフェースを実装し,
org.seasar.jca.inbound.AbstractMessageEndpointImplを継承したクラスを指定します.
|
JMSMessageEndpointImpl |
deliveryTransacted |
No |
メッセージをトランザクショナルに受信するにはtrueを設定します.
|
true |
メソッド
| メソッド | 説明 |
|---|---|
setProperty(String key, String value) |
リソースアダプタ固有のプロパティを指定します. |
MessageEndpointActivator
MessageEndpointActivatorは,
インバウンド通信によるメッセージの受信を開始・終了するコンポーネントです.
このコンポーネントは,app.dicon の最後など,
SMART deploy や AutoRegister によるコンポーネントの登録が終わった後に
初期化される場所に定義します.
MessageEndpointActivatorの実装クラスを以下に示します.
org.seasar.jca.deploy.impl.MessageEndpointActivator
プロパティ
| プロパティ | 必須 | 説明 | デフォルト |
|---|---|---|---|
activationSpecDeployer |
Yes |
メッセージエンドポイントの
ActivationSepcDeployer
を指定します.
自動バインディングするには,
ActivationSepcDeployerの
コンポーネント名が,このプロパティと同じ
activationSepcDeployerの
でなくてはなりません.
それ以外の場合は明示的にプロパティを設定する必要があります.
|
N/A |
JMSコンテナの設定
JMSContainer
JMSContainerは,受信したJMSメッセージをアプリケーションコンポーネントにバインドし,
リスナメソッドを呼び出すコンポーネントです.
JMSContainerの実装クラスを以下に示します.
org.seasar.jms.container.impl.JMSContainerImpl
プロパティ
| プロパティ | 必須 | 説明 | デフォルト |
|---|---|---|---|
filters |
No |
受信したメッセージを処理するフィルタを指定します.
通常は自動バインディングされるため,明示的に設定する必要はありません.
標準的なフィルタはjms-default-filter.diconに定義されています.
|
なし |
メソッド
| メソッド | 説明 |
|---|---|
addMessageListener(String messageListenerName) |
受信したJMSメッセージを処理するアプリケーションコンポーネントのコンポーネント名を指定します. 少なくとも一つのコンポーネント名を設定する必要があります. |
diconファイルへの記述は以下のようになります.
<!-- S2JMS-Container の設定 -->
<component class="org.seasar.jms.container.impl.JMSContainerImpl">
<!-- アプリケーションのリスナ・コンポーネントの名前を指定します (複数指定可) -->
<initMethod name="addMessageListener">
<arg>"echoListener"</arg>
</initMethod>
</component>
