65.15. ルートのエンドポイントマッピング
XML 設定が整ったので、Camel の DSL を使用して、エンドポイントで処理される Web サービスリクエストを定義できます。
次のルートは、http://example.com/
名前空間内に "GetFoo" という名前のルート要素を持つすべての Web サービスリクエストを受け取ります。
from("spring-ws:rootqname:{http://example.com/}GetFoo?endpointMapping=#endpointMapping") .convertBodyTo(String.class).to(mock:example)
from("spring-ws:rootqname:{http://example.com/}GetFoo?endpointMapping=#endpointMapping")
.convertBodyTo(String.class).to(mock:example)
次のルートは、http://example.com/GetFoo
SOAP アクションを含む Web サービスリクエストを受け取ります。
from("spring-ws:soapaction:http://example.com/GetFoo?endpointMapping=#endpointMapping") .convertBodyTo(String.class).to(mock:example)
from("spring-ws:soapaction:http://example.com/GetFoo?endpointMapping=#endpointMapping")
.convertBodyTo(String.class).to(mock:example)
次のルートは、http://example.com/foobar
に送信されたすべてのリクエストを受け取ります。
from("spring-ws:uri:http://example.com/foobar?endpointMapping=#endpointMapping") .convertBodyTo(String.class).to(mock:example)
from("spring-ws:uri:http://example.com/foobar?endpointMapping=#endpointMapping")
.convertBodyTo(String.class).to(mock:example)
以下のルートは、要素 <foobar>abc</foobar>
をメッセージ内の任意の場所 (およびデフォルトの名前空間) に含むリクエストを受け取ります。
from("spring-ws:xpathresult:abc?expression=//foobar&endpointMapping=#endpointMapping") .convertBodyTo(String.class).to(mock:example)
from("spring-ws:xpathresult:abc?expression=//foobar&endpointMapping=#endpointMapping")
.convertBodyTo(String.class).to(mock:example)
65.15.1. 既存のエンドポイントマッピングを使用した代替設定 リンクのコピーリンクがクリップボードにコピーされました!
mapping-type beanname
を持つすべてのエンドポイントに対して、対応する名前を持つタイプ CamelEndpointDispatcher
の 1 つの Bean が Registry/ApplicationContext に必要です。この Bean は、Camel エンドポイントと PayloadRootQNameEndpointMapping
などの既存の エンドポイントマッピング の間のブリッジとして機能します。
beanname
mapping-type の使用は、主に、すでに Spring-WS を使用しており、Spring XML ファイルでエンドポイントマッピングが定義されている (レガシー) 状況を対象としています。beanname
マッピングタイプを使用すると、Camel ルートを既存のエンドポイントマッピングに接続できます。最初から開始する場合は、エンドポイントマッピングを Camel URI として定義する必要があります (上記の endpointMapping
を参照)。これは、必要な設定が少なく、より表現力が高いためです。アノテーションを利用してバニラ Spring-WS を使用することもできます。
beanname
を使用したルートの例: