<目次>
(1) EARファイル・WARファイル・JARファイルの違いや特徴について
(1-1) JARファイルとは(.jar)
(1-2) WARファイル(.war)
(1-3) EARファイルとは(.ear)
(1-4) まとめ(三者の違い)
(1) EARファイル・WARファイル・JARファイルの違いや特徴について
タイトルの通り、Javaのモジュールをパッケージした形式であるEAR・WAR・JARの違いについてご紹介します。
EAR・WAR・JARはいずれもJava関連のモジュールを「デプロイ可能な単位」に固めたもので、この形式でJBossやTomcatといったアプリケーションサーバに配備して稼働させる事が可能になります。しかし、それぞれデプロイ対象の資産の内容や、配備先のサーバ種類が異なったりしています。
違いを理解するために、最初にそれぞれの概要について簡単に見ていきます。また図を使って、EARやWARやJARが全体像のどこに関連する資源なのか?も図示していきます。
(図100)

(1-1) JARファイルとは(.jar)
JARファイルはJavaのクラスファイル等を纏めて固めた資源で「.jar」の拡張子を持ちます。
その中でも「EJB-JAR」は特殊なJARの形式で、EJB(Enterprise Java Beans)のモジュール(クラスファイル)とEJBデプロイメントディスクリプタ(xml形式の定義ファイル)とをセットで拡張子「.jar」で固めたものです。
(表)
| |
JAR
(EJB-JARの場合) |
| 配備対象 |
●配備対象
EJBを固めた特殊なJarファイル(※注1)の場合、「EJBコンテナ」にデプロイします。
●概要
EJBコンテナはJARファイルを通じてEJBに対するアクセスを提供します。またEJBを他の部品と分離する役目も果たします。
(※注1)
EJB-JARはJava EEの仕様で定義された特殊なJarファイルの一種で「.jar」型の拡張子を持ちます。 |
| 動作環境 |
・JREが必要 |
| 資産 |
下記のような資産を集めて「.jar」形式に固める
(例)
・Javaクラスファイル
・その他データ
(処理に必要なメタデータ、テキスト、画像等) |
| デプロイメントディスクリプタの名前 |
・「META-INF」配下に「ejb-jar.xml」を配備 |
表の通り、EJB-JARは「EJBコンテナ」上にデプロイされます。
(図111)
>目次にもどる
(1-2) WARファイル(.war)
WARは「Web application ARchive」または「Web Application Resource」の略でWebアプリを構成するモジュールを固めたファイルになります。具体的にはサーブレットのクラスファイル(.class)やJSPファイル、HTMLといったWebアプリの資産がJARファイルとして「.war」の拡張子で固められます。
(表)
| |
WAR |
| 配備対象 |
●配備対象
「Webコンテナ」(≒Servletコンテナ)にデプロイします。
●概要
WebコンテナはJavaの「JSP」や「Servlet」を固めたWARファイルでデプロイして、WebアプリのHTTPリクエスト/レスポンスの制御を提供します。
●(例)代表的なサーブレットコンテナ
・Tomcat
・Jetty |
| 動作環境 |
・Java EE(一部=Web Profile)が必要
⇒(例)Tomcat、Jettyなど |
| 資産 |
下記のような資産を集めて「.war」形式に固める
(例)
・JARファイル
・JSP
・Servlet
・XML
・HTML |
| デプロイメントディスクリプタの名前 |
・WEB-INF配下に「web.xml」を配備 |
表の通り、WARファイルは「サーブレットコンテナ」などにデプロイされます。
(図121)
>目次にもどる
(1-3) EARファイルとは(.ear)
EARは「Enterprise Archive」の略で、1個~複数個の「.jar」や「.war」を集めて「.ear」の拡張子で固めたものになります。
(表)
| |
EAR |
| 配備対象 |
●配備対象
「アプリケーションサーバ」にデプロイします。
●概要
「アプリケーションサーバ」は1個~複数個のWARファイルやEJB-JARファイルを集めて1つに固めたものになります。
●(例)代表的なアプリケーションサーバ
・WebSphere(IBM)
・WebLogic(Oracle)
・JBoss
・GlassFish |
| 動作環境 |
・Java EE(全部)が必要
⇒(例)Jboss、WebSphere、WebLogic、GlassFishなど
(備考)
Java EE以外でも、Jakarta EE及びその互換製品でも実行可能 |
| 資産 |
EARファイルやJARファイルを1個~複数個集めて「.ear」で固めたもの
(例)
・EARファイル
・JARファイル |
| デプロイメントディスクリプタの名前 |
・META-INF配下に「application.xml」を配備 |
表の通り、EARファイルは「アプリケーションサーバ」などにデプロイされます。
(図131)
>目次にもどる
(1-4) まとめ(三者の違い)
●デプロイに必要な環境
一番大きな違いは「それぞれが異なる実行環境にデプロイされる」という点です。例えば、JARファイルはJREがある環境で動作するし、WARならJREに加えてTomcat等のサーブレットコンテナも必要ですし、EARなら更にEJBコンテナも含んだ「アプリケーションサーバ」(WebLogic等)が必要となります。
●機能的な違い
WARファイルはWebアプリに必要なJSPやサーブレットといった部品を固めたものである一方、JARは通常のクラスファイルやEJBを集めて固めたもの、EARはその両者をセットで固めたもの、といった役割が異なっています。
>目次にもどる
[…] Jar…Javaのクラスファイル当を纏めて固めた資源(.Jar) EJB-JARは特殊なJAR形式でEJB(Enterprize Java Beans)のモジュール(クラスファイル)と EJBデプロイメントディスクリプタ(xml形式の定義ファイル)とをセットで.Jarで固めたの EJBコンテナにデプロイします。 ※MATA-INF配下にejb-jar.xmlを配置)War…Web application ARchive または Web Application Resourceの略 サーブレットのクラスワイルやJSP,HTMLといったWebアプリの資産がJARファイルとして.war 拡張子で固められたものサーブレットコンテナに配置 ※WEB-INF配下に「web.xml」を配備Ear…Enterprise Archiveの略。1~複数個の.jarや.warを集めて1つに固めたもの(.ear) アプリケーションサーバにデプロイする。 ※Java EE(全部)が必要 ※代表的なアプリケーションサーバはWebLogic、Jboss、WebSphere など ※META-INF配下にapplication.xmlを配備(参考)EARファイル・WARファイル・JARファイルの違いや特徴について […]
[…] サーブレットコンテナやアプリケーションサーバの違いは「EARファイル・WARファイル・JARファイルの違いや特徴について」が詳しい。 […]