Menu Close

17.2. コンシューマーエンドポイントの設定

概要

JAX-WS コンシューマーエンドポイントは、jaxws:client 要素を使用して設定されます。要素の属性は、コンシューマーの作成に必要な基本的な情報を提供します。

WS-RM などのその他の機能をコンシューマーに追加するには、子を jaxws:client 要素に追加します。子要素は、エンドポイントのロギング動作を設定するためや、他のプロパティーをエンドポイントの実装に注入するためにも使用されます。

基本的な設定プロパティ

表17.4「JAX-WS コンシューマーの設定に使用される属性」で説明されている属性は、JAX-WS コンシューマーの設定に必要な基本情報を提供します。設定する特定のプロパティーの値のみを指定する必要があります。ほとんどのプロパティーには実用的なデフォルトがあります。または、エンドポイントのコントラクトによって提供される情報に依存します。

表17.4 JAX-WS コンシューマーの設定に使用される属性

属性説明

address

コンシューマーがリクエストを行うエンドポイントの HTTP アドレスを指定します。この値は、コントラクトで設定された値をオーバーライドします。

bindingId

コンシューマーが使用するメッセージバインディングの ID を指定します。有効なバインディング ID のリストは、「23章Apache CXF バインディング ID」で提供されます。

bus

エンドポイントを管理するバスを設定する Spring Bean の ID を指定します。

endpointName

コンシューマーが要求するサービスの wsdl:port 要素の name 属性の値を指定します。これは、ns:name 形式を使用して QName として指定されます。ここで、nswsdl:port 要素の namespace になります。

serviceName

コンシューマーが要求するサービスの wsdl:service 要素の name 属性の値を指定します。これは、ns:name 形式を使用して QName として指定されます。ここで、nswsdl:service 要素の namespace になります。

username

単純なユーザー名/パスワード認証に使用されるユーザー名を指定します。

password

単純なユーザー名/パスワード認証に使用されるパスワードを指定します。

serviceClass

サービスエンドポイントインターフェース (SEI) の名前を指定します。

wsdlLocation

エンドポイントの WSDL コントラクトの場所を指定します。WSDL コントラクトの場所は、クライアントがデプロイされるフォルダーに対する相対パスです。

name

コンシューマーが要求するサービスの wsdl:port 要素の文字列化された QName を指定します。これは、{ns}localPart 形式を使用して QName として指定されます。ここで、nswsdl:port 要素の namespace であり、localPartwsdl:port 要素の name 属性の値になります。

abstract

Bean が抽象 Bean であるかどうかを指定します。抽象 Bean は具体 Bean 定義の親として機能し、インスタンス化されません。デフォルトは false です。これを true に設定すると、Bean ファクトリーが Bean をインスタンス化しないように指示します。

depends-on

インスタンス化する前に、エンドポイントがインスタンス化されることに依存する Bean のリストを指定します。

createdFromAPI

Service.getPort() などの Apache CXF API を使用して Bean を作成したユーザーを指定します。

デフォルトは false です。

これを true に設定すると以下を行います。

  • Bean の内部名を変更するには、.jaxws-client を id に追加します。
  • Bean を抽象化する

表17.4「JAX-WS コンシューマーの設定に使用される属性」 に一覧表示される属性の他に、複数の xmlns:shortName 属性を使用して endpointName および serviceName 属性によって使用される namespace を宣言する必要がある場合があります。

機能の追加

コンシューマーに機能を追加したり、高度な設定を実施するには、設定に子要素を追加する必要があります。

子要素を使用すると、以下を実行できます。

表17.5「コンシューマーエンドポイント設定用の要素」に、JAX-WS コンシューマーの設定に使用できる子要素をまとめます。

表17.5 コンシューマーエンドポイント設定用の要素

要素説明

jaxws:binding

エンドポイントによって使用されるメッセージバインディングを設定する Bean を指定します。メッセージバインディングは、org.apache.cxf.binding.BindingFactory インターフェースの実装を使用して設定されます。[a]

jaxws:dataBinding

エンドポイントによって使用されるデータバインディングを実装するクラスを指定します。埋め込み Bean 定義を使用してこれを指定します。JAXB データバインディングを実装するクラスは org.apache.cxf.jaxb.JAXBDataBinding です。

jaxws:features

Apache CXF の高度な機能を設定する Bean のリストを指定します。Bean 参照のリストまたは組み込み Bean のリストを指定できます。

jaxws:handlers

メッセージを処理する JAX-WS Handler 実装のリストを指定します。JAX-WS Handler 実装の詳細は、「43章ハンドラーの作成」を参照してください。

jaxws:inInterceptors

インバウンドの応答を処理するインターセプターのリストを指定します。詳細は、パートVII「Apache CXF インターセプターの開発」を参照してください。

jaxws:inFaultInterceptors

インバウンドの障害メッセージを処理するインターセプターのリストを指定します。詳細は、パートVII「Apache CXF インターセプターの開発」を参照してください。

jaxws:outInterceptors

アウトバウンドリクエストを処理するインターセプターのリストを指定します。詳細は、パートVII「Apache CXF インターセプターの開発」を参照してください。

jaxws:outFaultInterceptors

アウトバウンドの障害メッセージを処理するインターセプターのリストを指定します。詳細は、パートVII「Apache CXF インターセプターの開発」を参照してください。

jaxws:properties

エンドポイントに渡されるプロパティーのマップを指定します。

jaxws:conduitSelector

クライアントが使用する org.apache.cxf.endpoint.ConduitSelector 実装を指定します。ConduitSelector 実装は、送信要求の処理に使用される Conduit オブジェクトの選択に使用するデフォルトのプロセスを上書きします。

[a] SOAP バインディングは soap:soapBinding Bean を使用して設定されます。

例17.5「単純なコンシューマー設定」に単純なコンシューマー設定を示します。

例17.5 単純なコンシューマー設定

<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 プロパティーの許可される値の一覧は、「スキーマ検証の型の値」 を参照してください。