10.9.1 Webサービスの初期化
Webサービス側のJAX-WSエンジンでは,J2EEアプリケーションがJ2EEサーバによって開始されるときに,Webサービスを初期化します。具体的には次の処理が実行されます。
-
Webサービスのディスカバリをするための,URLと,Webサービス実装クラスまたはプロバイダ実装クラスとのマッピング情報の生成処理
-
POJOのWebサービスの実行に必要なリクエストbean,レスポンスbean,およびフォルトbeanのJavaBeansクラスがWARファイルに含まれない場合,またはEJBのWebサービスの実行に必要なリクエストbean,レスポンスbean,およびフォルトbeanのJavaBeansクラスがEARファイルに含まれない場合,JAX-WSエンジンがこれらのJavaBeansクラスを動的に生成
-
メタデータを発行するためのWSDLの確認処理(Webサービス実装クラスの場合)
-
Webサービス実装クラスまたはプロバイダ実装クラスにハンドラが関連づけられている場合のハンドラチェイン設定ファイルの読み込みと,ハンドラの初期化処理
(javax.annotation.PostConstructアノテーションでアノテートされたメソッドがある場合はそのメソッドの呼び出しも含む)
Webサービスの初期化の開始時に,ログおよび標準出力にKDJW40001-Iのメッセージが出力されます。Webサービスの初期化が正常に終了した場合,ログおよび標準出力にKDJW40003-Iのメッセージが出力されます。Webサービスの初期化でエラーが発生し,初期化に失敗した場合,ログおよび標準エラー出力にKDJW40002-Eのメッセージとエラーの原因となったエラーメッセージが出力されます。
Webサービスの初期化でエラーが発生した場合,ログにエラーが出力されますが,J2EEアプリケーションの開始自体は継続され,正常終了します。ただし,初期化に失敗しているので,デプロイされたWebサービスは動作しません。この場合,KDJW40002-Eのメッセージが出力されたかどうかを確認し,エラーが出力された場合には問題を修正し,再度Webサービスをデプロイしてください。
J2EEサーバの開始時に,デプロイされているJ2EEアプリケーションが自動的に開始される場合など,どのJ2EEアプリケーションに含まれるWebサービスの初期化に失敗したのか,調査が困難なことがあります。そのようなときは,「39.3.1 ログの種類」で示すログ,およびJ2EEサーバの稼働ログを確認することで,J2EEアプリケーション名とコンテキストルート名を特定できます。
"com.cosminexus.xml.ws.transport.http.servlet.WSServletContextListener"を含む,KDJE39103-Eメッセージの出力内容を確認する例を次に示します。
0095 2009/12/18 13:48:36.471 HEJB 0125FEFA 004413EE KDJE39103-E An exception javax.xml.ws.WebServiceException was raised in notification of the listener class com.cosminexus.xml.ws.transport.http.servlet.WSServletContextListener. (J2EE application = Sample_application_fromwsdl, context root = /fromjava)
上記のようなログが出力されている場合,J2EEアプリケーション"Sample_application_fromwsdl"に含まれる,コンテキストルート名"fromjava"に関連づけられたWARファイル内のWebサービスの初期化が失敗しています。
ユーザプログラムに問題がある場合,基本的にKDJE39103-Eのメッセージのエラーが発生します。ただし,必要に応じて次のエラーメッセージについても確認してください。
-
KDJE39100-E
-
KDJE39101-E
-
KDJE39102-E
J2EEサーバの稼働ログについては,マニュアル「アプリケーションサーバ 機能解説 保守/移行編」の「5.2 アプリケーションサーバのログ」を参照してください。また,上記のメッセージについては,マニュアル「アプリケーションサーバ メッセージ(構築/運用/開発用)」の「7.2 KDJE30000からKDJE39999までのメッセージ」を参照してください。