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 ハンドラー実装のリストを指定します。JAX-WS ハンドラーの実装に関する詳細は、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 プロパティーの許可される値の一覧は、「スキーマ検証タイプの値」 を参照してください。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.