9.3.4 アーカイブ形式のJ2EEアプリケーションの作成

Developerが提供するプラグインを使用しないでアーカイブ形式のJ2EEアプリケーションを開発する場合,jarコマンドを使用してアーカイブを作成します。ここでは,WARファイル,EJB-JARファイル,およびEARファイルの作成について説明します。

<この項の構成>
(1) WARファイルの作成(jarコマンド)
(2) EJB-JARファイルの作成(jarコマンド)
(3) EARファイルの作成(jarコマンド)

(1) WARファイルの作成(jarコマンド)

jarコマンドを使用して,Webアプリケーションとして使用するプログラムやファイルをWARファイルにアーカイブします。WARファイルにアーカイブする場合のディレクトリ構成,およびjarコマンドの指定例を示します。

(a) WARファイルのディレクトリ構成

表9-3 jarコマンドによるアーカイブ時のディレクトリ構成(WAR)

ディレクトリ名またはファイル名説明必須
/アーカイブ内のルートディレクトリです。
 任意JSPやHTML,そのほかのwebクライアントからアクセスされるファイルです。WEB-INF以外のサブディレクトリに格納することもできます。
/WEB-INF/webクライアントから直接アクセスできないファイルを格納するディレクトリです。
 web.xmlservlet仕様で規定されたDDです。
 *.tldJavaServer Pages(TM)仕様で規定されたタグライブラリ・ディスクリプタのファイルです。サブディレクトリの下に格納してもかまいません。
/WEB-INF/classes/サーブレットやそのほかのクラスファイルを格納するディレクトリです。格納するファイルがないときは不要です。
 *.classパッケージ名称に従って,ディレクトリ階層にサーブレットやそのほかのクラスファイル(*.class)を格納します。
/WEB-INF/lib/サーブレットやそのほかのクラスを含むJARファイル(*.jar)を格納するディレクトリです。格納するファイルがないときは不要です。
 *.jarサーブレットやそのほかのクラスを含むJARファイル(*.jar)を格納します。
/META-INF/管理情報を格納するディレクトリです。jarコマンドによって自動的に作成されます。
 MANIFEST.MFjarコマンドのmオプションで指定されたファイルが格納されます。用意しなくてもアーカイブ内に自動的に作成されます。
(凡例)
○:アーカイブするときに必須であることを示します
-:該当しません

(b) WARファイル作成時のjarコマンド指定例

カレントディレクトリおよびサブディレクトリに次のようにファイルが用意されているとします。

index.html
howto.jsp
feedback.jsp
images/banner.gif
images/jumping.gif
WEB-INF/web.xml
WEB-INF/lib/jspbean.jar
WEB-INF/classes/com/mycorp/servlets/MyServlet.class
WEB-INF/classes/com/mycorp/util/MyUtils.class

このとき,次のようにコマンドを実行すると,「MyApp.war」という名称のWARファイルが作成されます。

jar cf ..¥MyApp.war .

(2) EJB-JARファイルの作成(jarコマンド)

jarコマンドを使用して,Enterprise BeanやDDをEJB-JARファイルにアーカイブします。EJB-JARファイルにアーカイブする場合のディレクトリ構成,およびjarコマンドの指定例を示します。

(a) EJB-JARファイルのディレクトリ構成

表9-4 jarコマンドによるアーカイブ時のディレクトリ構成(EJB-JAR)

ディレクトリ名またはファイル名説明必須
/アーカイブ内のルートディレクトリです。
 *.classEnterprise Beanのクラス,Enterprise Beanのホームインタフェース,コンポーネントインタフェース,ビジネスインタフェース,およびそれらが依存するJ2SEやJ2EE規定外のクラス(インタフェース)のクラスファイル(*.class)をパッケージ名に従ったディレクトリ階層で格納します。
/META-INF/管理情報を格納するディレクトリです。jarコマンドによって自動的に作成されます。
 ejb-jar.xmlEJB仕様で規定されたDDです。
 MANIFEST.MFマニフェストファイルです。jarコマンドのmオプションを指定することで,アーカイブ内に自動的に作成されます。
(凡例)
○:アーカイブするときに必須であることを示します
-:該当しません
注※
EJB2.0仕様のEnterprise Beanでは必須です。アノテーションに対応したEnterprise Beanでは不要です。

(b) EJB-JARファイル作成時のjarコマンド指定例

カレントディレクトリおよびサブディレクトリに次のようにファイルが用意されているとします。

com/mycorp/account/Account.class
com/mycorp/account/AccountEJB.class
com/mycorp/account/AccountHome.class
com/mycorp/account/InsufficientBalanceException.class
META-INF/ejb-jar.xml

このとき,次のようにコマンドを実行すると,「MyEJB.jar」という名称のEJB-JARファイルが作成されます。

jar cf ..¥MyEJB.jar .¥

(3) EARファイルの作成(jarコマンド)

jarコマンドを使用して,WARファイル,EJB-JARファイル,ライブラリJARファイル,およびDDをEARファイルにアーカイブします。EARファイルにアーカイブする場合のディレクトリ構成,およびjarコマンドの指定例を示します。

(a) EARファイルのディレクトリ構成

表9-5 jarコマンドによるアーカイブ時のディレクトリ構成(EAR)

ディレクトリ名またはファイル名説明必須
/アーカイブ内のルートディレクトリです。
 *.jar,*.warJ2EEアプリケーションに含まれるEJB-JARファイル,WARファイル,およびそのほかのJARファイルです。hitachi-runtime.jarという名称は使用できません。application.xmlにJ2EEアプリケーションの構成モジュールとして定義されていない拡張子が小文字のJARファイル(.jar)は,ライブラリJARとして扱われ,J2EEアプリケーションのクラスパスに追加されます。
/META-INF/管理情報を格納するディレクトリです。jarコマンドによって自動的に作成されます。
 application.xmlJ2EE仕様で規定されたDDです。
 MANIFEST.MFマニフェストファイルです。jarコマンドのmオプションを指定することで,アーカイブ内に自動的に作成されます。
(凡例)
○:アーカイブするときに必須であることを示します
-:該当しません

(b) EARファイル作成時のjarコマンド指定例

カレントディレクトリおよびサブディレクトリに次のようにファイルが用意されているとします。

MyEJB.jar
MyUtil.jar
MyApp.war
META-INF/application.xml

このとき,次のようにコマンドを実行すると,「MyApp.ear」という名称のEARファイルが作成されます。

jar cf ..¥MyApp.ear .¥