回答:
J2EEアプリケーションでは、モジュールは機能に基づいてEAR、JAR、WARとしてパッケージ化されます
JAR:エンタープライズJava Bean(クラスファイル)とEJBデプロイメント記述子を含むEJBモジュールは、拡張子が.jarのJARファイルとしてパックされます。
WAR:サーブレットクラスファイル、JSPファイル、サポートファイル、GIFおよびHTMLファイルを含むWebモジュールは、.war(Webアーカイブ)拡張子を持つJARファイルとしてパッケージ化されます
EAR:上記のすべてのファイル(.jarおよび.war)は、拡張子が.ear(エンタープライズアーカイブ)のJARファイルとしてパッケージ化され、Application Serverに配備されます。
WAR(Webアーカイブ)が上にロードされるモジュールであるWebコンテナのJavaアプリケーションサーバー。Java Application Serverには2つのコンテナー(ランタイム環境)があります。1つはWebコンテナーで、もう1つはEJBコンテナーです。
Webコンテナ JSPやサーブレットAPIに基づいて、ホストのWebアプリケーションは、 - Webリクエストの処理のために特別に設計された-ので、より多くの分散コンピューティングの要求/応答スタイル。Webコンテナーを使用するには、WebモジュールをWARファイルとしてパッケージ化する必要web.xml
がありWEB-INF
ます。これは、フォルダー内にファイルを含む特別なJARファイルです。
EJBコンテナので、より多くの-な宣言型トランザクション、宣言型のメソッドレベルのセキュリティとマルチプロトコルサポートなどの拡張ビジネス機能を提供するために設計されたEJB APIに基づいホストエンタープライズJava Beanの分散コンピューティングのRPCスタイルを。EJBコンテナでは、EJBモジュールをJARファイルとしてパッケージ化する必要があります -これらはフォルダ内にejb-jar.xml
ファイルを持っていMETA-INF
ます。
エンタープライズアプリケーションは、Webモジュール(WARファイルとしてパッケージ化)、EJBモジュール(JARファイルとしてパッケージ化)、またはその両方のいずれかである1つ以上のモジュールで構成できます。エンタープライズアプリケーションは、次のようにパッケージ化されているEARファイル -これらは含む特別なJARファイルですapplication.xml
内のファイルMETA-INF
フォルダを。
基本的に、EARファイルはWARファイルとJARファイルを含むスーパーセットです。Javaアプリケーションサーバーでは、スタンドアロンのWebモジュールをWARファイルにデプロイできますが、内部では、WARファイルのラッパーとしてEARファイルを作成します。TomcatやJettyなどのスタンドアロンWebコンテナはEARファイルをサポートしていません。これらは本格的なアプリケーションサーバーではありません。これらのコンテナー内のWebアプリケーションは、WARファイルとしてのみデプロイされます。
アプリケーションサーバーでは、EARファイルには、アプリケーションセキュリティロールマッピング、EJB参照マッピング、WebモジュールのコンテキストルートURLマッピングなどの構成が含まれています。
EARファイルには、WebモジュールとEJBモジュールの他に、RARファイルとしてパッケージ化されたコネクタモジュールと、JARファイルとしてパッケージ化されたクライアントモジュールを含めることもできます。
.jar
、.war
および.ear
ファイルはこのように、普通た.zipファイルを扱うことができる任意のプログラムで開くことができ、単純なzipアーカイブです。
war-Webアーカイブ。サーブレット標準に従ってWebアプリケーションをデプロイするために使用されます。これは、WEB-INFと呼ばれる特別なディレクトリとその中のいくつかのファイルとディレクトリ(web.xml、lib、classes)、およびすべてのHTML、JSP、画像、CSS、JavaScript、およびWebアプリケーションの他のリソースを含むjarファイルです。
耳-エンタープライズアーカイブ。これは、EJB、Webアプリケーション、およびサードパーティライブラリを含むエンタープライズアプリケーションをデプロイするために使用されます。これはjarファイルでもあり、application.xmlファイルを含むAPP-INFと呼ばれる特別なディレクトリがあり、jarファイルとwarファイルが含まれています。
WAR(Webアーカイブ)ファイルには、サーブレットクラスファイル、JSP(Javaサーブレットページ)、HTMLおよびグラフィカルファイル、およびその他のサポートファイルが含まれています。
EAR(エンタープライズアーカイブ)ファイルには、WARファイルとコードを含むJARファイルが含まれています。
それらのファイルには他のものが含まれている可能性がありますが、基本的には、WebタイプのもののWAR、エンタープライズタイプのもののWAR(WAR、コード、コネクタなど)を意味しています。
JARファイル
JAR(Java Archiveの略)ファイルでは、複数のファイルを1つのファイルに結合できます。「.jar」を含むファイル。拡張機能は、Javaクラスおよびさまざまなメタデータを配布するためにソフトウェア開発者によって利用されます。これらには、ライブラリやリソースファイル、およびアクセサリファイル(プロパティファイルなど)も保持されます。
ユーザーは、Java Development Kit(JDK)の「.jar」コマンドを使用してJARファイルを抽出および作成できます。ZIPツールも使用できます。
JARファイルには、オプションのマニフェストファイルがあります。マニフェストファイル内のエントリは、JARファイルの使用を規定します。ファイルクラスの「メイン」クラス仕様は、ファイルを分離または「スタンドアロン」プログラムとして示します。
WARファイル
WAR(またはWebアプリケーションアーカイブ)ファイルは、XML(拡張マークアップ言語)ファイル、Javaクラス、およびインターネットアプリケーション用のJavaサーバーページで構成できます。また、Webアプリケーションを構成するライブラリやWebページをマークするためにも使用されます。拡張子が「.war」のファイルには、サーバーまたはJSP(Java Server Page)コンテナーで使用するWebアプリが含まれています。JSP、HTML(ハイパーテキストマークアップ言語)、JavaScript、および前述のWebアプリを作成するためのさまざまなファイルが含まれています。
WARファイルは、特別なディレクトリとファイルを許可するように構成されています。また、コードの真実性を示すために、デジタル署名(JARファイルの署名とよく似ています)が含まれている場合もあります。
EARファイル
EAR(エンタープライズアーカイブ)ファイルは、JARファイルとWARファイルを1つのアーカイブにマージします。拡張子が「.ear」のこれらのファイルには、メタデータ用のディレクトリがあります。モジュールはアーカイブにパッケージ化されており、アプリサーバー内のさまざまなモジュールをスムーズかつ同時に操作できます。
EARファイルには、さまざまなモジュールのデプロイメントを効果的に指示するデプロイメント記述子(XMLファイル)もあります。
参照:http : //www.wellho.net/mouth/754_tar-jar-war-ear-sar-files.html
tar(テープアーカイブ)-使用される形式は、fileName、fileSize、fileDataのシリアル単位で書き込まれたファイルです-圧縮なし。巨大になることができます
JAR(Javaアーカイブ)-使用される圧縮技術-通常、クラス/ JavaファイルなどのJava情報が含まれます。しかし、任意のファイルとディレクトリ構造を含めることができます
war(Webアプリケーションアーカイブ)-同様のjarファイルには、デプロイメントの目的で、JSP /サーブレット仕様に従って特定のディレクトリ構造しかありません。
ear(エンタープライズアーカイブ)-jarファイルと同様。J2EEアプリケーションサーバーにデプロイできるように、J2EE要件に従うディレクトリ構造を持っている。-複数のJARおよびWARファイルを含めることができます
EARファイルには、アプリケーションサーバーとの対話を構成するためのより多くのオプションがあります。
例:アプリケーションサーバーの休止バージョンが依存関係によって提供されるバージョンより古い場合、JBOSSのear-deployer-jboss-beans.xmlに以下を追加してクラスローダーを分離し、競合を回避できます。
<bean name="EARClassLoaderDeployer" class="org.jboss.deployment.EarClassLoaderDeployer">
<property name="isolated">true</property>
</bean>
またはsrc / main / application / META-INF / jboss-app.xmlに:
<?xml version="1.0"?>
<jboss-app>
<loader-repository>
loader=nameofyourear.ear
<loader-repository-config>java2ParentDelegation=false</loader-repository-config>
</loader-repository>
</jboss-app>
これにより、アプリケーションとアプリケーションサーバーの間でクラスローダーの競合が発生しなくなります。
通常、クラスローダーのメカニズムは次のように機能します。
クラス・ロード要求がクラス・ローダーに提示されると、最初にその要求を実行するように親クラス・ローダーに要求します。親は、要求が階層の最上位に到達するまで、親にクラスを要求します。階層の最上位にあるクラスローダーがリクエストを実行できない場合、それを呼び出した子クラスローダーがクラスのロードを担当します。
クラスローダーを分離することにより、earクラスローダーは親(= JBoss /他のASクラスローダー)を調べません。私の知る限り、これはwarファイルでは不可能です。
J2EEは3つのタイプのアーカイブを定義します。
Java Archives(JAR) JARファイルは、1つ以上のJavaクラス、マニフェスト、および記述子をカプセル化します。JARファイルは最低レベルのアーカイブです。JARファイルは、EJBとクライアント側のJavaアプリケーションをパッケージ化するためにJ2EEで使用されます。
Webアーカイブ(WAR) WARファイルはJARファイルに似ていますが、サーブレット、JSP、およびサポートクラスから作成されたWebアプリケーション専用です。
エンタープライズアーカイブ(EAR)「EARファイルには、特定のJ2EEアプリケーションを構成するすべてのコンポーネントが含まれています。
プロジェクトを移送するために、導入が簡単になりました。1つのファイルに圧縮する必要があります。.classファイルのJAR(Javaアーカイブ)グループ
WAR(Webアーカイブ)-各warは1つのWebアプリケーションを表します-サーブレットやjspsなどのWeb関連テクノロジーのみを使用できます。-Tomcatサーバーで実行できます-Web関連テクノロジーによって開発されたWebアプリのみjspサーブレットhtml js-情報表現のみでトランザクションはありません。
EAR(エンタープライズアーカイブ)-各earは1つのエンタープライズアプリケーションを表します。ejbやjmsなどのj2eeから何でも使用できます。-Tomcatサーバーではなく、Glassfishのようなサーバーで実行できます。-すべてのWebアプリに加えてejbs jmsなど、j2eeからのテクノロジーによって開発されたエンタープライズアプリ-情報表現を使用してトランザクションを実行します。例えば。銀行アプリ、通信アプリ
.JAR, .WAR and .EAR
は、ビデオチュートリアルもご覧ください。それは非常にシンプルで理解しやすいです。それは何であるかを説明します差異の間.JAR、.WARおよび.EAR ビデオチュートリアル:.JAR、.WARおよび.EARの違い