14.2 cjaptコマンド

cjaptコマンドは,アノテーションを解釈して,追加のJavaコードを生成し,基のJavaコードを含めてコンパイルするコマンドです。Webサービスの開発では,SEIを起点とした開発をする場合に使用します。Webサービス実装クラスに記述されたアノテーション(JAX-WS 2.2仕様に従って記述)を解釈し,必要なJavaBeanクラスを追加して生成します。

ここでは,cjaptコマンドを実行するときの注意事項について説明します。

<この節の構成>
(1) 引数に指定するWebサービス実装クラスおよびSEI
(2) 必須オプション
(3) 生成されるファイル
(4) 続行できる軽微なエラーが検出された場合の動作
(5) 異常終了時の対処

(1) 引数に指定するWebサービス実装クラスおよびSEI

cjaptコマンドの引数には,Webサービス実装クラスおよびSEI(SEIを参照している場合)をそれぞれ1個指定します。Webサービス実装クラスを2個以上指定した場合は,ログにエラーメッセージが出力され,エラーメッセージがcjaptコマンドに返されます(KDJW61002-E)。ただし,SEIだけ指定した場合などWebサービス実装クラスがない場合は,標準エラー出力とログに警告メッセージが出力され,処理が続行されます(KDJW61001-W)。この場合,JavaBeanクラスは生成されません。

上記以外のSEIおよびWebサービス実装クラスに関する注意事項は,「16.1 JavaからWSDLへのデフォルトマッピング」および「16.2 JavaからWSDLへのマッピングのカスタマイズ」を参照してください。

cjaptコマンドでは,javax.ejb.Statelessアノテーションの付いたEJBのWebサービス実装クラスを引数に指定した場合,次の警告が出力されます。

警告: プロセッサなしの注釈タイプです: [javax.ejb.Stateless]

(2) 必須オプション

cjaptコマンドを実行するときは,-classpathオプションの指定が必須です。指定値を次に示します。

-classpathオプション
  • <Application Serverのインストールディレクトリ>/jaxws/lib/cjjaxws.jar
  • <Application Serverのインストールディレクトリ>/jaxp/lib/csmjaxb.jar
  • <Application Serverのインストールディレクトリ>/jaxp/lib/csmjaxp.jar
  • <Application Serverのインストールディレクトリ>/jaxp/lib/csmstax.jar
  • <Application Serverのインストールディレクトリ>/CC/client/lib/j2ee-javax.jar
  • <Application Serverのインストールディレクトリ>/CC/client/lib/HiEJBClientStatic.jar
Windows x86の場合
  • <HNTRLib2インストールディレクトリ>/classes/hntrlib2j.jar
  • <HNTRLib2インストールディレクトリ>/classes/hntrlibMj.jar
Windows x64の場合
  • <HNTRLib2インストールディレクトリ>/classes/hntrlib2j64.jar
  • <HNTRLib2インストールディレクトリ>/classes/hntrlibMj64.jar
注※
<HNTRLib2インストールディレクトリ>の部分は次に示すコマンドの実行結果を指定します。
  • Windows x86の場合

    > "%COSMINEXUS_HOME%¥common¥bin¥gethntr2conf.exe" HNTR2INSTDIR

  • Windows x64の場合

    > "%COSMINEXUS_HOME%¥common¥bin¥gethntr2conf64.exe" HNTR2INSTDIR

(3) 生成されるファイル

cjaptコマンドの実行時に生成されるファイルを次の表に示します。

表14-5 cjaptコマンドの生成ファイル一覧

項番Javaコード内容
1リクエストbeanクラス要求メッセージのJavaBeanクラスです。wrapperスタイルの場合に出力されます。
2レスポンスbeanクラス応答メッセージのJavaBeanクラスです。wrapperスタイルの場合に出力されます。
3フォルトbeanクラスフォルトに対応するJavaBeanクラスです。指定したJavaコードでラッパ例外クラスが定義されている場合で,かつフォルトbeanがない場合に出力されます。
ファイル生成時のディレクトリの作成
cjaptコマンドを実行すると,指定した出力先ディレクトリに,生成されるファイルのパッケージ名に対応するディレクトリが作成され,そのディレクトリにファイルが出力されます。
指定例および出力先を次に示します。
  • コマンド指定例
    cjapt -d ./output -s ./output/ -sourcepath . com/example/test.java
  • 出力先
    JavaBeanクラス以外のソースファイル,およびコンパイル済みクラスファイルは次のディレクトリに出力されます。
    ./output/com/example/
    ただし,コマンドに指定したJavaコードにJavaBeanクラスがある場合は,JavaBeanクラスのソースファイルおよびそのコンパイル済みクラスファイルはSEIのパッケージのjaxwsサブパッケージに出力されます(パッケージ名をアノテーションでカスタマイズしている場合を除く)。
    ./output/com/example/jaxws/
Application ServerのJAX-WS機能が提供するアノテーションプロセッサでは,Javaコードの出力先ディレクトリがない場合やディレクトリではない場合などで不正な場合,ログにエラーメッセージが出力され,cjaptコマンドにエラーが通知されます(KDJW61003-E)。
コンパイル済みクラスファイルの出力先ディレクトリは,cjaptコマンドの引数に指定した-dオプションの値となります。-dオプションが指定されていない場合は,-sオプションに指定された値となります。-dオプション,-sオプションのどちらも指定されていない場合,カレントディレクトリが出力先ディレクトリとなります。
ソースファイルの出力先ディレクトリは,cjaptコマンドの引数に指定した-sオプションの値となります。-sオプションが指定されていない場合は,カレントディレクトリが出力先ディレクトリとなります。
cjaptコマンドは生成したソースファイルを再帰的に解釈して処理するため,ソースファイルの出力先ディレクトリは,ソースファイルの入力ディレクトリとして扱われることがあります。したがって,出力先ディレクトリにソースファイルを配置した場合,cjaptコマンドの入力として扱われることがあるので,注意してください。出力先ディレクトリにはソースファイルを配置しないことを推奨します。
Javadocのヘッダ情報の出力
生成されるファイルでは,Application Serverに関する情報が,Javadocとしてヘッダ情報に出力されます。

(4) 続行できる軽微なエラーが検出された場合の動作

処理の途中で続行できる軽微なエラーが検出された場合は,警告メッセージが出力され,処理が続行されます。

なお,設定した出力レベル(重要度)によって,ログが出力されない場合があります。ログの出力レベルの設定については,「10.1.2 共通定義ファイルの設定項目」を参照してください。

(5) 異常終了時の対処

cjaptコマンドの実行時にエラーが発生した場合,エラーメッセージが出力され,処理が終了されます。

エラーメッセージが出力された場合,出力されたエラーの要因を取り除き,cjaptコマンドを再実行してください。表示されたエラーの要因を一つずつ取り除き,正常終了するまで,cjaptコマンドを繰り返し実行してください。すでにファイルが生成されている場合は,cjaptコマンドを実行する前に生成されたファイルを削除してください。

なお,設定した出力レベル(重要度)によって,ログが出力されない場合があります。ログの出力レベルの設定については,「10.1.2 共通定義ファイルの設定項目」を参照してください。