| Oracle® Fusion Middleware Oracle WebLogic Server 10.3.6アプリケーションの開発 11gリリース1 (10.3.6) B60990-07 |
|
![]() 前 |
![]() 次 |
この章では、WebLogic分割開発ディレクトリ環境を使用してWebLogic Server 10.3.6 Java EEアプリケーションをビルドする手順を説明します。
この章の内容は次のとおりです。
wlcompile Antタスクは、javacコンパイラを起動して、アプリケーションのJavaコンポーネントを分割開発ディレクトリ構造にコンパイルするために使用します。wlcompileの基本的な構文では、helloWorldEarサンプルからの次のコマンドのようにソース・ディレクトリとビルド・ディレクトリを識別します。
<wlcompile srcdir="${src.dir}" destdir="${dest.dir}"/>
|
注意: デプロイメント記述子は、Java EE 5において必須ではなくなりました。そのため、展開形式のモジュール・ディレクトリにデプロイメント記述子がない場合は、.warまたは.jar接尾辞を使用してモジュール・タイプを指定する必要があります。wlcompileでモジュールを認識できるようにするため、接尾辞は必須でとなっています。.war接尾辞は、そのモジュールがWebアプリケーション・モジュールであることを示します。.jar接尾辞は、そのモジュールがEJBモジュールであることを示します。 |
このタスクを使用すると発生するイベントの順序を次に示します。
wlcompileは、Javaコンポーネントを出力ディレクトリにコンパイルします。
WL_HOME\samples\server\examples\build\helloWorldEar\APP-INF\classes\
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ライブラリのディレクトリを指定します。第9章「共有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 Development Kitに必要なその他の標準Javaクラス。
Apache Antのexamples.propertyファイル(サンプル環境用)。このファイルについては、samples\server\examples\src\examples\examples.htmlにあるAntを使用してのサンプルの構築に関するWebLogic Serverドキュメントで説明されています。
サード・パーティJavaツールまたはプログラムがインポートするサービスのクラス。
コンパイルするプログラムによって参照されるその他のアプリケーション・クラス。
library要素は、アプリケーションのビルドに必要な共有Java EEライブラリを表すモジュールの名前とオプションのバージョン情報の定義に使用されるオプションの要素です(第9章「共有Java EEライブラリおよびオプション・パッケージの作成」を参照)。library要素は、wlcompileおよびwlappcの両方とともに使用できます(「wlappcを使用したモジュールおよびアプリケーションのビルド」を参照)。
名前とバージョン情報は、ライブラリ要素の属性(「表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ライブラリのディレクトリを指定します。第9章「共有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の場合、コマンド内に存在するフラグはブールです。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 |
高度な使用オプションを出力します。 |