78.11. Spring で宛先とコンジットを設定する
78.11.1. Namespace
Camel トランスポートエンドポイントの設定に使用される要素は、名前空間 http://cxf.apache.org/transports/camel で定義されています。通常、接頭辞 camel を使用して参照されます。Camel トランスポート設定要素を使用するには、以下に示す行をエンドポイントの設定ファイルの beans 要素に追加する必要があります。さらに、設定要素の名前空間を xsi:schemaLocation 属性に追加する必要があります。
設定名前空間の追加
<beans ...
xmlns:camel="http://cxf.apache.org/transports/camel
...
xsi:schemaLocation="...
http://cxf.apache.org/transports/camel
http://cxf.apache.org/transports/camel.xsd
...>78.11.2. destination 要素
camel:destination 要素とその子要素を使用して、Camel トランスポートサーバーエンドポイントを設定します。camel:destination 要素は、エンドポイントに対応する WSDL port 要素を指定する単一の属性 name を取ります。name 属性の値は、portQName`.camel-destination` の形式を取ります。以下の例では、エンドポイントのターゲット名前空間がhttp://widgets.widgetvendor.netの場合、WSDLフラグメント<port binding="widgetSOAPBinding" name="widgetSOAPPort"> によって指定されたエンドポイントの設定を追加するために使用する camel:destination 要素を示します。
camel:destination Element
...
<camel:destination name="{http://widgets/widgetvendor.net}widgetSOAPPort.http-destination>
<camelContext id="context" xmlns="http://activemq.apache.org/camel/schema/spring">
<route>
<from uri="direct:EndpointC" />
<to uri="direct:EndpointD" />
</route>
</camelContext>
</camel:destination>
<!-- new added feature since Camel 2.11.x
<camel:destination name="{http://widgets/widgetvendor.net}widgetSOAPPort.camel-destination" camelContextId="context" />
...
Spring の camel:destination 要素には、設定情報を指定する多数の子要素があります。以下に説明します。
要素
説明
camel-spring:camelContext
camel 宛先で camel コンテキストを指定できます
camel:camelContextRef
camel 宛先に挿入する camel コンテキスト ID
78.11.3. conduit 要素
camel:conduit 要素とその子要素を使用して、Camel トランスポートクライアントを設定します。camel:conduit 要素は、エンドポイントに対応する WSDL ポート要素を指定する単一の属性 name を取ります。name 属性の値は、portQName`.camel-conduit` の形式を取ります。たとえば、以下のコードは、エンドポイントのターゲット名前空間が http://widgets.widgetvendor.net の場合、WSDL フラグメント <port binding="widgetSOAPBinding" name="widgetSOAPPort"> によって指定されていたエンドポイントの設定を追加するために使用される camel:conduit 要素を示しています。
http-conf:conduit Element
...
<camelContext id="conduit_context" xmlns="http://activemq.apache.org/camel/schema/spring">
<route>
<from uri="direct:EndpointA" />
<to uri="direct:EndpointB" />
</route>
</camelContext>
<camel:conduit name="{http://widgets/widgetvendor.net}widgetSOAPPort.camel-conduit">
<camel:camelContextRef>conduit_context</camel:camelContextRef>
</camel:conduit>
<!-- new added feature since Camel 2.11.x
<camel:conduit name="{http://widgets/widgetvendor.net}widgetSOAPPort.camel-conduit" camelContextId="conduit_context" />
<camel:conduit name="*.camel-conduit">
<!-- you can also using the wild card to specify the camel-conduit that you want to configure -->
...
</camel:conduit>
...
camel:conduit 要素には、設定情報を指定する多数の子要素があります。以下に説明します。
要素
説明
camel-spring:camelContext
camel コンジットで camel コンテキストを指定できます。
camel:camelContextRef
camel コンジットに挿入する camel コンテキスト ID