31.2. サービスの公開に使用される API
概要
javax.xml.ws.Enddpoint
クラスは JAX-WS サービスプロバイダーを公開する作業を行います。エンドポイントを公開するには、次の手順を実行します。
-
サービスプロバイダーの
Endpoint
オブジェクトを作成します。 - エンドポイントを公開します。
- アプリケーションがシャットダウンしたら、エンドポイントを停止します。
Endpoint
クラスは、サービスプロバイダーを作成および公開するメソッドを提供します。また、単一のメソッド呼び出しでサービスプロバイダーを作成および公開できるメソッドも提供します。
サービスプロバイダーのインスタンス化
サービスプロバイダーは、Endpoint
オブジェクトを使用してインスタンス化されます。以下のメソッドのいずれかを使用して、サービスプロバイダーの Endpoint
オブジェクトをインスタンス化します。
-
static
Endpoint
create
Object
implementor
このcreate()
メソッドは、指定されたサービス実装のEndpoint
を返します。実装クラスのjavax.xml.ws.BindingType
アノテーションが存在する場合、これにより提供される情報を使用してEndpoint
オブジェクトが作成されます。アノテーションが存在しない場合、Endpoint
はデフォルトの SOAP 1.1/HTTP バインディングを使用します。 -
static
Endpoint
create
URI
bindingID
Object
implementor
このcreate()
は、メソッドは、指定されたバインディングを用いた指定された実装オブジェクトのEndpoint
オブジェクトを返します。javax.xml.ws.BindingType
アノテーションが存在する場合、このメソッドはそのアノテーションにより提供されるバインディング情報を上書きします。bindingID
を解決できない場合や、null
の場合、javax.xml.ws.BindingType
で指定されたバインディングを使用してEndpoint
を作成します。bindingID
またはjavax.xml.ws.BindingType
を使用しない場合は、デフォルトの SOAP 1.1/HTTP バインディングを使用してEndpoint
が作成されます。 static
Endpoint
publish
String
address
Object
implementor
このpublish()
メソッドは、指定された実装のEndpoint
オブジェクトを生成し、公開する。Endpoint
オブジェクトに使用されるバインディングは、指定されたaddress
の URL スキームによって決定されます。実装で使用可能なバインディングのリストは、URL スキームをサポートするバインディングについてスキャンされます。これが見つかる場合、Endpoint
オブジェクトが作成され、公開されます。見つからない場合、メソッドは失敗します。publish()
の使用は、create()
メソッドのいずれかを呼び出してから、???TITLE??? で使用されるpublish()
メソッドを呼び出します。
Endpoint
作成メソッドに渡される実装オブジェクトは、javax.jws.WebService
のアノテーションが付けられたクラスのインスタンスで SEI 実装の要件を満たすか、あるいは javax.xml.ws.WebServiceProvider
のアノテーションが付けられたクラスのインスタンスでプロバイダーインターフェイスを実装する、のいずれかでなければなりません。
サービスプロバイダーの公開
以下の Endpoint
メソッドのいずれかを使用してサービスプロバイダーをパブリッシュできます。
publish
String
address
このpublish()
メソッドは、指定されたアドレスにサービスプロバイダーを公開します。重要address
の URL スキームは、サービスプロバイダーのバインディングのいずれかと互換性がある必要があります。-
publish
Object
serverContext
Thispublish()
メソッドは、指定のサーバーコンテキストで提供される情報に基づいてサービスプロバイダーを公開します。サーバーコンテキストはエンドポイントのアドレスを定義する必要があり、コンテキストはサービスプロバイダーの使用可能なバインディングの 1 つとも互換性がある必要があります。
公開されたサービスプロバイダーを停止する
サービスプロバイダーが必要なくなった場合は、その stop()
メソッドを使用して停止する必要があります。stop()
に示す 例31.1「公開されたエンドポイントを停止する方法」 メソッドは、エンドポイントをシャットダウンして、使用しているリソースをすべてクリーンアップします。
例31.1 公開されたエンドポイントを停止する方法
stop
エンドポイントが停止すると、再公開できなくなります。