28 Webサービスのエンドポイントのパブリッシュ

この章では、javax.xml.ws.Endpoint APIを使用して、WebサービスをWebLogic Server インスタンスにデプロイすることなく、実行時にWebサービスのエンドポイントを作成する方法について説明します。

詳細は、http://docs.oracle.com/javase/8/docs/api/javax/xml/ws/Endpoint.htmlを参照してください。

次の表に、Webサービスのエンドポイントをパブリッシュするステップをまとめます。

表28-1 Webサービスのエンド・ポイントをパブリッシュするステップ

# ステップ 説明

1

Webサービスのエンドポイントを作成します。

javax.xml.ws.Endpoint create()メソッドを使用してエンドポイントを作成し、エンドポイントに関連付けるインプリメンタ(Webサービスの実装)を指定し、必要に応じてバインディング・タイプを指定します。指定しない場合、バインディング・タイプのデフォルトはSOAP1.1/HTTPになります。実行時に定義したように、エンドポイントに関連付けるのは1つの実装オブジェクトと1つのjavax.xml.ws.Bindingにのみであり、これらの値は変更できません。

たとえば次の例では、CallbackWS()実装のWebサービス・エンドポイントが作成されます。

Endpoint callbackImpl = Endpoint.create(new CallbackWS());

2

受信したリクエストを受け入れるため、Webサービスのエンドポイントをパブリッシュします。

javax.xml.ws.Endpoint publish()メソッドを使用して、サーバー・コンテキストを指定するか、Webサービス・エンドポイントのアドレスとインプリメンタ(必要に応じて)を指定します。

ノート: エンドポイントに関連付けられているメタデータ・ドキュメント(WSDLまたはXMLスキーマ)を更新したい場合は、エンドポイントをパブリッシュする前に更新する必要があります。

たとえば次の例では、ステップ1でサーバー・コンテキストを使用して作成したWebサービス・エンドポイントがパブリッシュされます。

Object sc
context.getMessageContext().get(MessageContext.SERVLET_CONTEXT);
callbackImpl.publish(sc);

3

Webサービスのエンドポイントを停止して、処理完了後に追加のリクエストが受け入れられないようにします。

javax.xml.ws.Endpointstop()メソッドを使用してエンドポイントを停止し、受信したリクエストの受け入れを停止します。いったん停止したエンドポイントをパブリッシュし直すことはできません。

たとえば:

callbackImpl.stop()

コールバック・サンプルのコンテキスト内でWebサービスのエンドポイントをパブリッシュする例については、「コールバック・クライアントWebサービスのプログラミングのガイドライン」を参照してください。

上の表に示したステップに加え、javax.xml.ws.Endpoint APIのメソッドを使用して以下を定義することもできます。

  • エンドポイントに関連付けるエンドポイント・メタデータ・ドキュメント(WSDLまたはXMLスキーマ)。メタデータは、Webサービス・エンドポイントをパブリッシュする前に定義する必要があります。

  • エンドポイント・プロパティ。

  • アプリケーションに対する受信リクエストのディスパッチに使用するjava.util.concurrent.Executor (http://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Executor.htmlを参照)。

詳細は、javax.xml.ws.EndpointのJavadoc (http://docs.oracle.com/javase/8/docs/api/javax/xml/ws/Endpoint.html)を参照してください。