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ファイルを指定して個別にデプロイすることも出来る。