EAR(Enterprise Archive)は、Javaのウェブアプリケーションのアーカイブ。中身にはWARやEJBを含む。
EARは「イヤー」「イアー」「ヤー」「アー」等と呼ばれる(らしい)。
J2EEサーバー上にアプリケーションを持って行ってデプロイするのに便利。
earファイルの中には、EJBやWARを入れる。また、それらの構成や名前を示すapplication.xmlが必要となる。
EJBはjarファイル、WARはwarファイルの形でearファイル内に含める。
あるいは、jarファイル・warファイルを展開したディレクトリーの形でearファイル内に含めることも出来る。
(と思うのだが、WebLogicではディレクトリー形式でも問題ないが、JBossではファイルでないと認識してくれない模様)
ファイル形式の構造の例:
earファイル | earファイル内 | 備考 | |
---|---|---|---|
sample.ear | META-INF | application.xml | |
MANIFEST.MF | earファイルはjarの一種なので、マニフェストも作られる | ||
ejb1.jar | EJBのjarファイル | ||
sample.war | warファイル |
ディレクトリー形式の構造の例:
earファイル | earファイル内 | 備考 | ||
---|---|---|---|---|
sample.ear | META-INF | application.xml | ||
MANIFEST.MF | earファイルはjarの一種なので、マニフェストも作られる | |||
ejb1 | Hoge.class | EJBのjarファイル相当 | ||
META-INF | MANIFEST.MF | |||
sample | hoge.jsp | warファイル相当 | ||
WEB-INF | web.xml | |||
classes | ||||
lib |
ファイル形式の場合 | ディレクトリー形式の場合 |
---|---|
<?xml version="1.0" encoding="Shift_JIS"?> <application> <display-name>sample.ear-file</display-name> <module> <ejb>ejb1.jar</ejb> </module> <module> <web> <web-uri>sample.war</web-uri> <context-root>testf</context-root> </web> </module> </application> |
<?xml version="1.0" encoding="Shift_JIS"?> <application> <display-name>sample.ear-dir</display-name> <module> <ejb>ejb1</ejb> </module> <module> <web> <web-uri>sample</web-uri> <context-root>testd</context-root> </web> </module> </application> |
earファイルを作成するにはantを使用するのが便利。
earファイルを展開して使える状態にすることをデプロイ(deploy)と言う。
J2EEサーバーの所定の場所にearファイルを置けば、勝手に展開してくれる(自動デプロイ機能が有効な場合)。
→WebLogic10の展開場所
→JBossASの展開場所
WebLogicの場合は、自動デプロイでなく、管理コンソールからearファイルを指定して個別にデプロイすることも出来る。