以下の節では、WebLogic 分割開発ディレクトリ環境を使用して WebLogic Server Java EE アプリケーションをビルドする手順を説明します。
wlcompile
Ant タスクは、javac コンパイラを起動して、アプリケーションの Java コンポーネントを分割開発ディレクトリ構造にコンパイルするために使用します。wlcompile
の基本的な構文では、helloWorldEar
サンプルからの次のコマンドのようにソース ディレクトリとビルド ディレクトリを識別します。
<wlcompile srcdir="${src.dir}" destdir="${dest.dir}"/>
注意 : デプロイメント記述子は、JEE 5 において必須ではなくなりました。そのため、展開形式のモジュール ディレクトリにデプロイメント記述子がない場合は、.war または .jar サフィックスを使用してモジュール タイプを指定する必要があります。wlcompile でモジュールを認識できるようにするため、サフィックスは必須でとなっています。.war サフィックスは、そのモジュールが Web アプリケーション モジュールであることを示します。.jar サフィックスは、そのモジュールが EJB モジュールであることを示します。 |
このタスクを使用すると発生するイベントの順序を次に示します。
wlcompile は、Java コンポーネントを出力ディレクトリにコンパイルします。
prompt> java weblogic.DDConverter [options] archive_file_or_directory
WL_HOME
は、WebLogic Server のインストール ディレクトリです。
wlcompile
は EJB を構築し、以前に構築された Java モジュールを、コンパイラのクラスパスに自動的に含めます。これにより、EJB は手動でクラスパスを編集する必要なしに Java モジュールを呼び出せます。
最後に、wlcompile
は Web アプリケーション内の Java コンポーネントを、コンパイラのクラスパスにある EJB および Java モジュールと一緒にコンパイルします。これにより、Web アプリケーションは手動でクラスパスを編集する必要なしに、EJB およびアプリケーション Java クラスを参照できるようになります。
より複雑なエンタープライズ アプリケーションでは、wlcompile タスクで自動的に処理できないコンパイルの依存関係がある場合があります。ただし、wlcompile で include および exclude オプションを使用して独自の依存関係を強制できます。includes および excludes プロパティはエンタープライズ アプリケーション モジュール名 (エンタープライズ アプリケーションのソース ディレクトリ内のサブディレクトリ名) を受けて、これらをコンパイル処理に含めたり除外したりします。
helloWorldEar
サンプルからの次の行は、appStartup
モジュールがコンパイルから除外されることを示しています。
<wlcompile srcdir="${src.dir}" destdir="${dest.dir}" excludes="appStartup"/>
表 4-1 では、wlcompile
固有の Ant タスクの属性を示します。
表 4-1 wlcompile Ant タスクの属性
属性 | 説明 |
---|---|
srcdir |
ソース ディレクトリ。 |
destdir |
ビルド/出力ディレクトリ。 |
classpath |
|
includes |
ビルドから特定のディレクトリを含めることができる。 |
excludes |
ビルドから特定のディレクトリを除外できる。 |
librarydir |
クラスパスに追加するための共有 Java EE ライブラリのディレクトリを指定する。詳細については、「共有 Java EE ライブラリおよびオプション パッケージの作成」を参照。 |
wlcompile
Ant タスクは、コンパイル時の動作を変更するネストされた [javac] オプションを受け入れます。たとえば、次の wlcompile
コマンドは非推奨の警告を無視し、デバッグを有効にします。
<wlcompile srcdir="${mysrcdir}" destdir="${mybuilddir}"> <javac deprecation="false" debug="true" debuglevel="lines,vars,source"/> </wlcompile>
ほとんどの WebLogic サービスは Java EE 仕様に基づいており、標準 Java EE パッケージを通じてアクセスします。WebLogic サービスを使用するプログラムのコンパイルに必要な Sun、WebLogic、およびその他の Java クラスは、インストールした WebLogic Server の lib
ディレクトリの weblogic.jar
ファイルにパッケージ化されます。weblogic.jar
ファイル以外にも、以下のものをコンパイラの CLASSPATH
に組み込みます。
JDK ディレクトリ内の lib\tools.jar
ファイル、または使用する Java 開発キットに必要なその他の標準 Java クラス。
Apache Ant の examples.property
ファイル (サンプル環境用)。このファイルについては、samples\server\examples\src\examples\examples.html にある Ant を使用してのサンプルの構築に関する WebLogic Server ドキュメントで説明されています。
サード パーティ Java ツールまたはプログラムがインポートするサービスのクラス。
コンパイルするプログラムによって参照されるその他のアプリケーション クラス。
library
要素は、「Java EE ライブラリおよびオプション パッケージの作成」で説明されているように、アプリケーションのビルドに必要な共有 Java EE ライブラリを表すモジュールの名前および必要に応じてバージョン情報を定義する要素 (省略可能) です。「wlappc を使用したモジュールおよびアプリケーションのビルド」で説明される wlcompile
と wlappc
の両方で、library
要素を使用できます。
名前とバージョン情報は、ライブラリ要素の属性 (「表 4-2」を参照) として指定されます。
表 4-2 ライブラリの属性
属性 | 説明 |
---|---|
file |
Java EE ライブラリのファイル名 (必須)。 |
name |
必須の Java EE ライブラリの名前 (省略可能)。 |
specificationversion |
ライブラリで必要な仕様のバージョン (省略可能)。 |
implementationversion |
ライブラリで必要な仕様の実装 (省略可能)。 |
specificationversion
と implementationversion
の両方のフォーマットの選択肢については、「エンタープライズ アプリケーションでの共有 Java EE ライブラリの参照」で説明します。次の出力では、サンプル library
参照を示します。
<library file="c:\mylibs\lib.jar" name="ReqLib" specificationversion="920" implementationversion="1.1" />
weblogic.appc
コンパイラは、デプロイメント用に JSP とコンテナ固有の EJB クラスを生成し、現在の Java EE 仕様に準拠するためにデプロイメント記述子を検証します。appc
は、モジュール間の検証チェックに加え、アプリケーションレベルのデプロイメント記述子とアプリケーション内の個々のモジュールの間の検証チェックを実行します。
また、オプション パッケージは、appc
で Java EE 共有ライブラリとしてサポートされます。そのため、オプション パッケージ参照の検索では、アプリケーションおよびそのモジュールのすべてのマニフェストがスキャンされます。
wlappc
は、weblogic.appc
コンパイラに対する Ant タスク インタフェースです。以下の節では、wlappc
のオプションと使い方について説明します。weblogic.appc
と wlappc
Ant タスクは、エンタープライズ アプリケーションを記述する application.xml
デプロイメント記述子に表示されている順番でモジュールをコンパイルします。
表 4-3 では、wlappc
固有の Ant タスクのオプションを示します。これらのオプションは、weblogic.appc
コマンドライン オプションと似ていますが、いくつかの点で違いがあります。
注意 : [weblogic.appc ] オプションのリストについては、「weblogic.appc リファレンス」を参照してください。
「wlcompile と wlappc のライブラリ要素」を参照してください。 |
表 4-3 wlappc Ant タスクの属性
オプション | 説明 |
---|---|
|
標準の使い方メッセージを出力する。 |
version |
|
output <file> |
代替的な出力アーカイブまたはディレクトリを指定する。これが設定されていないと、出力はソース アーカイブまたはディレクトリに置かれる。 |
forceGeneration |
EJB および JSP クラスを強制的に生成する。このフラグを使用しない場合、クラスが再生成されないことがある (必要ないと判断された場合)。 |
lineNumbers |
生成されたクラス ファイルに行番号を追加し、デバッグを支援する。 |
writeInferredDescriptors |
アプリケーションまたはモジュールに、デプロイメント記述子がアノテーション情報と共に格納されることを指定する。 |
basicClientJar |
EJB 用に生成されたクライアント JAR のデプロイメント記述子を含まない。 |
idl |
EJB リモート インタフェース用の IDL を生成する。 |
idlOverwrite |
常に既存の IDL ファイルを上書きする。 |
idlVerbose |
IDL 生成についての詳細な情報を表示する。 |
idlNoValueTypes |
値タイプ、およびそれを含むメソッドと属性を生成しない。 |
-idlNoAbstractInterfaces |
抽象インタフェース、およびそれを含むメソッドと属性を生成しない。 |
idlFactories |
値タイプ用にファクトリ メソッドを生成する。 |
idlVisibroker |
Visibroker 4.5 C++ と多少の互換性を持つ IDL を生成する。 |
idlOrbix |
Orbix 2000 2.0 C++ と多少の互換性を持つ IDL を生成する。 |
idlDirectory <dir> |
IDL ファイルを作成するディレクトリを指定する (デフォルトでは、対象ディレクトリまたは JAR)。 |
idlMethodSignatures <> |
IDL コードを生成するトリガとして使用されるメソッド シグネチャを指定する。 |
iiop |
EJB 用に CORBA のスタブを生成する。 |
iiopDirectory <dir> |
IIOP のスタブ ファイルを記述するディレクトリを指定する (デフォルトでは、対象ディレクトリまたは JAR)。 |
keepgenerated |
生成された |
librarydir |
クラスパスに追加するための共有 Java EE ライブラリのディレクトリを指定する。詳細については、「共有 Java EE ライブラリおよびオプション パッケージの作成」を参照。 |
compiler <java.jdt> |
使用する Java コンパイラを選択する。デフォルトは JDT。 |
debug |
デバッグ情報をクラス ファイルにコンパイルする。 |
optimize |
最適化を有効にしてコンパイルする。 |
nowarn |
警告なしでコンパイルする。 |
verbose |
冗長情報を出力してコンパイルする。 |
deprecation |
非推奨となった呼び出しについて警告する。 |
normi |
Symantec の sj にフラグを渡す。 |
runtimeflags |
Java 実行時にフラグを渡す。 |
classpath <path> |
コンパイル中に使用するクラスパスを選択する。 |
clientJarOutputDir <dir> |
生成されたクライアント jar ファイルを配置するディレクトリを指定する。これが設定されていないと、生成された jar ファイルは JVM が実行しているディレクトリと同じ場所に配置される。 |
advanced |
高度な使用オプションを出力する。 |
wlappc
Ant タスクを使用するための基本的な構文では、送り先ソース ディレクトリの場所を決定する。このディレクトリには、wlappc
でコンパイルするファイルが格納される。
<wlappc source="${dest.dir}" />
以下は、表 4-3 の 2 つのオプション (idl
および idlOrverWrite
) を呼び出す wlappc
Ant タスク コマンドの例です。
<wlappc source="${dest.dir}"idl="true" idlOrverWrite="true" />
appc
と wlappc
では、構文にいくつかの違いがあります。appc の場合、コマンド内に存在するフラグは boolean です。wlappc
の場合、コマンド内にフラグが存在するということは、引数が必要であることを意味します。
以下はそれを説明するための、同一コマンドの例です。1 つ目が appc
コマンド、2 つ目がwlappc
コマンドです。
java weblogic.appc -idl foo.ear <wlappc source="${dest.dir} idl="true"/>
以下の節では、appc
コンパイラのコマンドライン バージョンを使用する方法について説明します。weblogic.appc
コマンドライン コンパイラは、記述子で見つかった警告やエラーをすべて報告し、関連のモジュールをすべて EAR ファイルにコンパイルします。このファイルは、WebLogic Server にデプロイできます。
appc
の実行には、次の構文を使用します。
prompt>java weblogic.appc [options] <ear, jar, or war file or directory>
appc
には以下のオプションがあります。
オプション | 説明 |
---|---|
|
標準の使い方メッセージを出力する。 |
-version |
appc のバージョン情報を出力する。 |
-output <file> |
代替的な出力アーカイブまたはディレクトリを指定する。これが設定されていないと、出力はソース アーカイブまたはディレクトリに置かれる。 |
-forceGeneration |
EJB および JSP クラスを強制的に生成する。このフラグを使用しない場合、クラスが再生成されないことがある (必要ないと判断された場合)。 |
-library <file[[@name=<string>][@libspecver=<version>][@libimplver=<version|string>]]> |
共有 Java EE ライブラリのカンマ区切りのリスト。省略可能な名前とバージョン文字列情報は、「エンタープライズ アプリケーションでの共有 Java EE ライブラリの参照」で説明されている形式で指定する必要がある。 |
-writeInferredDescriptors |
アプリケーションまたはモジュールに、デプロイメント記述子がアノテーション情報と共に格納されることを指定する。 |
-lineNumbers |
生成されたクラス ファイルに行番号を追加し、デバッグを支援する。 |
-basicClientJar |
EJB 用に生成されたクライアント JAR のデプロイメント記述子を含まない。 |
-idl |
EJB リモート インタフェース用の IDL を生成する。 |
-idlOverwrite |
常に既存の IDL ファイルを上書きする。 |
-idlVerbose |
IDL 生成についての詳細な情報を表示する。 |
-idlNoValueTypes |
値タイプ、およびそれを含むメソッドと属性を生成しない。 |
-idlNoAbstractInterfaces |
抽象インタフェース、およびそれを含むメソッドと属性を生成しない。 |
-idlFactories |
値タイプ用にファクトリ メソッドを生成する。 |
-idlVisibroker |
Visibroker 4.5 C++ と多少の互換性を持つ IDL を生成する。 |
-idlOrbix |
Orbix 2000 2.0 C++ と多少の互換性を持つ IDL を生成する。 |
-idlDirectory <dir> |
IDL ファイルを作成するディレクトリを指定する (デフォルトでは、対象ディレクトリまたは JAR)。 |
-idlMethodSignatures <> |
IDL コードを生成するトリガとして使用されるメソッド シグネチャを指定する。 |
-iiop |
EJB 用に CORBA のスタブを生成する。 |
-iiopDirectory <dir> |
IIOP のスタブ ファイルを記述するディレクトリを指定する (デフォルトでは、対象ディレクトリまたは JAR)。 |
-keepgenerated |
生成された .java ファイルを保持する。 |
-compiler <javac> |
使用する Java コンパイラを選択する。 |
-g |
デバッグ情報をクラス ファイルにコンパイルする。 |
-O |
最適化を有効にしてコンパイルする。 |
-nowarn |
警告なしでコンパイルする。 |
-verbose |
冗長情報を出力してコンパイルする。 |
-deprecation |
非推奨となった呼び出しについて警告する。 |
-normi |
Symantec の sj にフラグを渡す。 |
-J<option> |
Java 実行時にフラグを渡す。 |
-classpath <path> |
コンパイル中に使用するクラスパスを選択する。 |
-clientJarOutputDir <dir> |
生成されたクライアント jar ファイルを配置するディレクトリを指定する。これが設定されていないと、生成された jar ファイルは JVM が実行しているディレクトリと同じ場所に配置される。 |
-advanced |
高度な使用オプションを出力する。 |