Red Hat Training
A Red Hat training course is available for Red Hat Fuse
17.2. コンシューマーエンドポイントの設定
概要
JAX-WS コンシューマーエンドポイントは、jaxws:client 要素を使用して設定されます。要素の属性は、コンシューマーを作成するために必要な基本情報を提供します。
WS-RM などのその他の機能をコンシューマーに追加するには、子を jaxws:client 要素に追加します。子要素は、エンドポイントのログ動作を設定したり、エンドポイントの実装に他のプロパティーを挿入したりするためにも使用されます。
基本的な設定プロパティー
表17.4「JAX-WS コンシューマーの設定に使用する属性」 で説明されている属性は、JAX-WS コンシューマーの設定に必要な基本情報を提供します。設定する特定のプロパティーの値のみを指定する必要があります。ほとんどのプロパティーには適切なデフォルトがあるか、エンドポイントのコントラクトによって提供される情報に依存しています。
表17.4 JAX-WS コンシューマーの設定に使用する属性
| 属性 | 説明 |
|---|---|
| コンシューマーが要求を行うエンドポイントの HTTP アドレスを指定します。この値は、コントラクトで設定された値を上書きします。 | |
| コンシューマーが使用するメッセージバインディングの ID を指定します。有効なバインディング ID のリストは、23章Apache CXF バインディング ID に提供されています。 | |
| エンドポイントを管理するバスを設定する Spring Bean の ID を指定します。 | |
|
コンシューマーが要求するサービスの | |
|
コンシューマーが要求するサービスの | |
| 単純なユーザー名/パスワード認証に使用されるユーザー名を指定します。 | |
| 単純なユーザー名/パスワード認証に使用されるパスワードを指定します。 | |
| サービスエンドポイントインターフェイス (SEI) の名前を指定します。 | |
| エンドポイントの WSDL コントラクトの場所を指定します。WSDL コントラクトの場所は、クライアントのデプロイ元のフォルダーを基準にしています。 | |
|
コンシューマーが要求するサービスの | |
|
Bean が抽象 Bean であるかどうかを指定します。抽象 Bean は、具体的な Bean 定義の親として機能し、インスタンス化されません。デフォルトは | |
| インスタンス化する前にエンドポイントがインスタンス化に依存する Bean のリストを指定します。 | |
|
デフォルトは
これを
|
表17.4「JAX-WS コンシューマーの設定に使用する属性」 に一覧表示される属性の他に、複数の xmlns:shortName 属性を使用して endpointName および serviceName 属性によって使用される namespace を宣言する必要がある場合があります。
機能の追加
コンシューマーに機能を追加したり、高度な設定を行うには、設定に子要素を追加する必要があります。
子要素を使用すると、次のことができます。
表17.5「コンシューマーエンドポイント設定の要素」 JAX-WS コンシューマーの設定に使用できる子要素の説明を示します。
表17.5 コンシューマーエンドポイント設定の要素
| 要素 | 説明 |
|---|---|
|
エンドポイントが使用するメッセージバインディングを設定する Bean を指定します。メッセージバインディングは、 | |
|
エンドポイントで使用されるデータバインディングを実装するクラスを指定します。これは、埋め込み Bean 定義を使用して指定します。JAXB データバインディングを実装するクラスは | |
| Apache CXF の高度な機能を設定する Bean のリストを指定します。Bean 参照のリストまたは埋め込み Bean のリストのいずれかを提供できます。 | |
| メッセージを処理するための JAX-WS ハンドラー実装のリストを指定します。JAX-WS ハンドラーの実装に関する詳細は、43章ハンドラーの作成 を参照してください。 | |
| インバウンド応答を処理するインターセプターのリストを指定します。詳細は、パートVII「Apache CXF インターセプターの開発」 を参照してください。 | |
| インバウンド障害メッセージを処理するインターセプターのリストを指定します。詳細は、パートVII「Apache CXF インターセプターの開発」 を参照してください。 | |
| アウトバウンド要求を処理するインターセプターのリストを指定します。詳細は、パートVII「Apache CXF インターセプターの開発」 を参照してください。 | |
| アウトバウンド障害メッセージを処理するインターセプターのリストを指定します。詳細は、パートVII「Apache CXF インターセプターの開発」 を参照してください。 | |
| エンドポイントに渡されるプロパティーのマップを指定します。 | |
|
使用するクライアントの org.apache.cxf.endpoint.ConduitSelector 実装を指定します。ConduitSelector 実装は、送信要求の処理に使用される | |
[a]
SOAP バインディングは soap:soapBinding Bean を使用して設定されます。
| |
例
例17.4「簡単なコンシューマー設定」 は、簡単なコンシューマー設定を示しています。
例17.4 簡単なコンシューマー設定
<beans ...
xmlns:jaxws="http://cxf.apache.org/jaxws"
...
schemaLocation="...
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
...">
<jaxws:client id="bookClient"
serviceClass="org.apache.cxf.demo.BookClientImpl"
address="http://localhost:8080/books"/>
...
</beans>JAX-WS コンシューマーでのスキーマ検証の有効化
JAX-WS コンシューマーでスキーマ検証を有効にするには、jaxws:client 要素の jaxws:properties 子要素の schema-validation-enabled プロパティーを以下のように設定します。
<jaxws:client name="{http://apache.org/hello_world_soap_http}SoapPort"
createdFromAPI="true">
<jaxws:properties>
<entry key="schema-validation-enabled" value="BOTH" />
</jaxws:properties>
</jaxws:client>
schema-validation-enabled プロパティーの許可される値の一覧は、「スキーマ検証タイプの値」 を参照してください。