31.2. サービスの公開に使用される API
概要 リンクのコピーリンクがクリップボードにコピーされました!
javax.xml.ws.Enddpoint クラスは JAX-WS サービスプロバイダーを公開する作業を行います。エンドポイントを公開するには、次の手順を実行します。
-
サービスプロバイダーの
Endpointオブジェクトを作成します。 - エンドポイントを公開します。
- アプリケーションがシャットダウンしたら、エンドポイントを停止します。
Endpoint クラスは、サービスプロバイダーを作成および公開するメソッドを提供します。また、単一のメソッド呼び出しでサービスプロバイダーを作成および公開できるメソッドも提供します。
サービスプロバイダーのインスタンス化 リンクのコピーリンクがクリップボードにコピーされました!
サービスプロバイダーは、Endpoint オブジェクトを使用してインスタンス化されます。以下のメソッドのいずれかを使用して、サービスプロバイダーの Endpoint オブジェクトをインスタンス化します。
-
static
EndpointcreateObjectimplementorこのcreate()メソッドは、指定されたサービス実装のEndpointを返します。実装クラスのjavax.xml.ws.BindingTypeアノテーションが存在する場合、これにより提供される情報を使用してEndpointオブジェクトが作成されます。アノテーションが存在しない場合、Endpointはデフォルトの SOAP 1.1/HTTP バインディングを使用します。 -
static
EndpointcreateURIbindingIDObjectimplementorこのcreate()は、メソッドは、指定されたバインディングを用いた指定された実装オブジェクトのEndpointオブジェクトを返します。javax.xml.ws.BindingTypeアノテーションが存在する場合、このメソッドはそのアノテーションにより提供されるバインディング情報を上書きします。bindingIDを解決できない場合や、nullの場合、javax.xml.ws.BindingTypeで指定されたバインディングを使用してEndpointを作成します。bindingIDまたはjavax.xml.ws.BindingTypeを使用しない場合は、デフォルトの SOAP 1.1/HTTP バインディングを使用してEndpointが作成されます。 static
EndpointpublishStringaddressObjectimplementorこの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 スキームは、サービスプロバイダーのバインディングのいずれかと互換性がある必要があります。-
PublishObjectserverContextThispublish()メソッドは、指定のサーバーコンテキストで提供される情報に基づいてサービスプロバイダーを公開します。サーバーコンテキストはエンドポイントのアドレスを定義する必要があり、コンテキストはサービスプロバイダーの使用可能なバインディングの 1 つとも互換性がある必要があります。
公開されたサービスプロバイダーを停止する リンクのコピーリンクがクリップボードにコピーされました!
サービスプロバイダーが必要なくなった場合は、その stop() メソッドを使用して停止する必要があります。stop() に示す 例31.1「公開されたエンドポイントを停止する方法」 メソッドは、エンドポイントをシャットダウンして、使用しているリソースをすべてクリーンアップします。
例31.1 公開されたエンドポイントを停止する方法
stop
エンドポイントが停止すると、再公開できなくなります。