Web サービス・アプリケーションが WebSphere Application Server にデプロイされると、
各アプリケーションまたはモジュールにインスタンスが作成されます。インスタンスには、
実装の有効範囲、クライアント・バインディングおよびデプロイメント記述子情報など、
Web モジュールまたは Enterprise JavaBeans (EJB) モジュールのデプロイメント情報が含まれています。
有効範囲には、アプリケーション、セッション、および要求の 3 つのレベルを設定できます。
始める前に
エンタープライズ・アーカイブ (EAR) ファイルをまだデプロイしていない場合は、
このファイルを準備するか、またはアプリケーション・サーバーにデプロイ済みである必要があります。
このタスクについて
このタスクの主な目的は、Web サービスのポート有効範囲の構成を可能にすることです。
この有効範囲は、開発プロセス中に JavaBeans オブジェクトが Web サービスとして使用可能にされたときに指定されており、
WebServicesServerBindPort コマンドを使用して変更することができます。
この有効範囲属性は、Java Message Service (JMS) トランスポートを使用する Web サービス
または エンタープライズ Bean には適用されません。
Java 2 Platform Enterprise Edition (J2EE) 用の Web サービスは、
Web サービスの実装を必ずステートレスにするように指定します。
したがって、この指定との整合性を維持するため、
有効範囲はアプリケーション・レベルのまま残される可能性があります。
これは、個々のセッション・レベルまたは要求レベルに関連する状態を実装によって維持することが想定されていないためです。
別の JavaBean にある情報を探しているため、この指定を使用しないで、
異なる JavaBean インスタンスにアクセスする場合は、
有効範囲の設定を変更する必要があります。
有効範囲に構成する設定によって、
サービス実装クラスの新規インスタンスがモジュール内の Web サービス・ポートに対して作成される頻度が決定されます。
有効範囲が「アプリケーション」の場合は、アプリケーションに対するすべての要求に、
実装の同じインスタンスが使用されます。有効範囲が「セッション」の場合は、
各セッションのすべての要求に同じインスタンスが使用されます。
有効範囲が「要求」の場合は、すべての要求に新規のインスタンスが使用されます。
例えば、有効範囲が「アプリケーション」に設定されていると、
サーバーに着信するすべてのメッセージが同じ Java Bean インスタンスにアクセスします。
wsadmin ツールを使用して有効範囲の設定を変更するには、以下のようにします。
手順
- スクリプト・コマンドを起動します。 詳しくは、wsadmin スクリプト・クライアントの開始に関する項目を参照してください。
- Web サービス・ポートの有効範囲を構成します。
新規アクティベーション・スペックを使用または作成する代わりに、既存のリスナー・ポートを使用する場合は、EJB JAR バージョンが 2.1 より古いかどうかを確認します。
アプリケーションのデプロイに -usedefaultbindings オプションを指定すると、
アクティベーション・スペックがシステムによって自動的に作成および使用されます。アクティベーション・スペックが存在する場合は、
リスナー・ポートが無視され、代わりにアクティベーション・スペックが使用されます。
新規アクティベーション・スペックの代わりに定義済みのリスナー・ポートを使用して、2.1 以降のバージョンの
EJB JAR でアプリケーションをデプロイするには、対象のプロファイルの properties ディレクトリーの wsadmin.properties ファイルで、
com.ibm.websphere.management.application.dfltbndng.mdb.preferexisting
システム・プロパティーを true に設定します。
次の構文に示すように、install、installInteractive、
edit、または editInteractive のオプションを使用して、Web サービス・ポートの有効範囲を構成します。
$AdminApp install app_name {-usedefaultbindings -deployejb
-WebServicesServerBindPort {{<module_name> <Web_service> <port><scope_setting>}...}
上記の例は、1 つの WebServicesServerBindPort コマンドを使用して複数のポートの有効範囲を
変更できることを示しています。 - app_name はアプリケーション名です。例えば、WebServicesSample.ear です。
- module_name はモジュール名です。例えば、AddressBookW2JE.jar です。
- Web_service は Web サービスの名前です。例えば、AddressBookW2JE
service/WSLoggerService2 です。
- port はポートの名前です。例えば、AddressBook です。
- scope_setting は有効範囲の設定レベルです。例えば、Session です。
タスクの結果
Web サービス・ポートの有効範囲が構成されました。
例
以下の例は、アプリケーション、モジュール、Web サービス、ポート、および有効範囲を示しています。
コマンド行で以下のように書き込まれます。
$AdminApp install WebServicesSamples.ear {-usedefaultbindings -deployejb -deployws
-WebServicesServerBindPort {{AddressBookJ2WB.war AddressBookService AddressBook request}
{AddressBookW2JB.war AddressBookService AddressBook application}}}
次のタスク
これで、その他の構成を完了したり、アプリケーションを開始または再始動したり、Web サービスの期待される動作を確認することができます。