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