ラッパbeanの動的生成機能とは,ラッパbean(リクエストbeanとレスポンスbean),およびフォルトbeanのJavaBeansクラスをJAX-WSエンジンが動的に生成する機能です。SEIを起点として開発したWebサービスで使用できます。Webサービスクライアントや,WSDLを起点とするWebサービスでは,ラッパbeanの動的生成機能はサポートしていません。
ここでは,ラッパbeanの動的生成機能のエラーチェックおよび性能について説明します。
SEIを起点としたWebサービスを開発する場合,javacコマンドでWebサービス実装クラスをコンパイルします。ただし,javacコマンドのコンパイルでは,次に示すマッピングのエラーチェックはされません。
このため,Webサービス実装クラスにJAX-WS機能でサポートしていない定義内容が含まれると,Webサービスの開始に失敗したり,Webサービスの開始に成功してもメタデータの取得やSOAP通信に失敗したりする場合があります。これらの失敗を回避するには,javacコマンドでコンパイルしたWebサービス実装クラスに対してcjwsgenコマンドを実行し,事前にエラーチェックをする必要があります。なお,Webサービスの開始に失敗すると,ログおよび標準エラー出力に,次のエラーメッセージが出力されます。
Webサービスの起動性能は,JAX-WSエンジンがJavaBeansクラスをオンメモリ中に動的生成するオーバーヘッドが掛かるため,JavaBeansクラスを静的に生成した場合に比べると劣化します。しかし,WARファイルから読み込む必要がないため,ファイル読み込みのオーバーヘッドは軽減します。
また,JAX-WSエンジンが動的に生成するJavaBeansクラスは,cjwsgenコマンドが静的に生成するJavaBeansクラスと同一のため,Webサービス開始後のSOAP通信では,JavaBeansクラスを動的または静的のどちらで生成しても,性能は変わりません。