31.2. サービスの公開に使用される API

概要

javax.xml.ws.Enddpoint クラスは JAX-WS サービスプロバイダーを公開する作業を行います。エンドポイントを公開するには、次の手順を実行します。

  1. サービスプロバイダーの Endpoint オブジェクトを作成します。
  2. エンドポイントを公開します。
  3. アプリケーションがシャットダウンしたら、エンドポイントを停止します。

Endpoint クラスは、サービスプロバイダーを作成および公開するメソッドを提供します。また、単一のメソッド呼び出しでサービスプロバイダーを作成および公開できるメソッドも提供します。

サービスプロバイダーのインスタンス化

サービスプロバイダーは、Endpoint オブジェクトを使用してインスタンス化されます。以下のメソッドのいずれかを使用して、サービスプロバイダーの Endpoint オブジェクトをインスタンス化します。

  • staticEndpointcreateObjectimplementor この create() メソッドは、指定されたサービス実装の Endpoint を返します。実装クラスの javax.xml.ws.BindingType アノテーションが存在する場合、これにより提供される情報を使用して Endpoint オブジェクトが作成されます。アノテーションが存在しない場合、Endpoint はデフォルトの SOAP 1.1/HTTP バインディングを使用します。
  • staticEndpointcreateURIbindingIDObjectimplementor この create() は、メソッドは、指定されたバインディングを用いた指定された実装オブジェクトの Endpoint オブジェクトを返します。javax.xml.ws.BindingType アノテーションが存在する場合、このメソッドはそのアノテーションにより提供されるバインディング情報を上書きします。bindingID を解決できない場合や、null の場合、javax.xml.ws.BindingType で指定されたバインディングを使用して Endpoint を作成します。bindingID または javax.xml.ws.BindingType を使用しない場合は、デフォルトの SOAP 1.1/HTTP バインディングを使用して Endpoint が作成されます。
  • staticEndpointpublishStringaddressObjectimplementor この publish() メソッドは、指定された実装の Endpoint オブジェクトを生成し、公開する。Endpoint オブジェクトに使用されるバインディングは、指定された address の URL スキームによって決定されます。実装で使用可能なバインディングのリストは、URL スキームをサポートするバインディングについてスキャンされます。これが見つかる場合、Endpoint オブジェクトが作成され、公開されます。見つからない場合、メソッドは失敗します。

    publish() の使用は、create() メソッドのいずれかを呼び出してから、???TITLE??? で使用される publish() メソッドを呼び出します。

重要

Endpoint 作成メソッドに渡される実装オブジェクトは、javax.jws.WebService のアノテーションが付けられたクラスのインスタンスで SEI 実装の要件を満たすか、あるいは javax.xml.ws.WebServiceProvider のアノテーションが付けられたクラスのインスタンスでプロバイダーインターフェイスを実装する、のいずれかでなければなりません。

サービスプロバイダーの公開

以下の Endpoint メソッドのいずれかを使用してサービスプロバイダーをパブリッシュできます。

  • PublishStringaddress この publish() メソッドは、指定されたアドレスにサービスプロバイダーを公開します。

    重要

    address の URL スキームは、サービスプロバイダーのバインディングのいずれかと互換性がある必要があります。

  • PublishObjectserverContext This publish() メソッドは、指定のサーバーコンテキストで提供される情報に基づいてサービスプロバイダーを公開します。サーバーコンテキストはエンドポイントのアドレスを定義する必要があり、コンテキストはサービスプロバイダーの使用可能なバインディングの 1 つとも互換性がある必要があります。

公開されたサービスプロバイダーを停止する

サービスプロバイダーが必要なくなった場合は、その stop() メソッドを使用して停止する必要があります。stop() に示す 例31.1「公開されたエンドポイントを停止する方法」 メソッドは、エンドポイントをシャットダウンして、使用しているリソースをすべてクリーンアップします。

例31.1 公開されたエンドポイントを停止する方法

stop

重要

エンドポイントが停止すると、再公開できなくなります。