| ファイル名拡張子 |
。戦争 |
|---|---|
| インターネットメディアの種類 | アプリケーション/Java アーカイブ |
| 魔法の数字 | PK\x03\x04(標準ZIPファイル) |
| 開発者 | サン・マイクロシステムズ |
| コンテナ用 | JSP、Javaサーブレット |
| 延長 | ジャー |
ソフトウェアエンジニアリングにおいて、WARファイル(Web Application Resource [ 1 ]またはWeb Application ARchive [2] )は、 JARファイル、JavaServer Pages、Javaサーブレット、Javaクラス、XMLファイル、タグライブラリ、静的Webページ(HTMLおよび関連ファイル)、およびWebアプリケーションを構成するその他のリソースのコレクションを配布するために使用されるファイルです。
内容と構造
WAR ファイルは、ソース コードの出所を他のユーザーが判断できるように、 JARファイルと同じ方法でデジタル署名される場合があります。
WAR ファイル内には特別なファイルとディレクトリがあります。
- WAR ファイルの /WEB-INF ディレクトリには、Web アプリケーションの構造を定義するweb.xmlというファイルが含まれています。Web アプリケーションが JSP ファイルのみを提供する場合、web.xml ファイルは必ずしも必要ではありません。Web アプリケーションがサーブレットを使用する場合、サーブレット コンテナは web.xml を使用して、 URL要求がどのサーブレットにルーティングされるかを確認します。web.xml ファイルは、サーブレット内で参照できるコンテキスト変数の定義にも使用され、デプロイヤーが設定することが期待される環境依存関係の定義にも使用されます。この例としては、電子メールの送信に使用されるメール セッションへの依存関係があります。サーブレット コンテナは、このサービスを提供する責任があります。
WARファイルの利点
- Webアプリケーションの簡単なテストと展開
- デプロイされたアプリケーションのバージョンを簡単に識別
- すべてのJava EEコンテナはWARファイルをサポートしています
- MVC構造は WAR ファイルをサポートします。
実稼働環境では、展開前に十分なテストを行わずに修正をプロモートすることはないと仮定すると、プロパティ ファイルを使用して環境固有の変数を識別する場合、WAR ファイルに明確な利点があります。たとえば、テスト環境の LDAP サーバーは のようになりますldaps://testauth.example.com:636。実稼働環境の LDAP サーバーは ですldaps://auth.example.com:636。外部プロパティ ファイルでは、次のような内容でリンクを定義します。
リンクされたページ = ldaps://testauth.example.com:636
ソース コードはプロパティ ファイルを読み取って、ターゲット LDAP サーバーを決定します。これにより、開発者はテストおよび検証された WAR ファイルが、本番環境にプロモートされるファイルとまったく同じであることを確信できます。
WARファイルの欠点
動的環境でソースコードに小さな変更が必要な場合、WAR ファイルを使用した Web デプロイメントは不利であると考える人もいます。ソースコードへの各変更は、開発時に再パッケージ化してデプロイする必要があります。[ 3 ]ランタイムデプロイメント 用に構成されている場合は、Web サーバーを停止する必要はありません。[4]
例
次のサンプルweb.xmlファイルは、サーブレットの宣言と関連付けを示しています。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web アプリケーション 2.2//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<サーブレット> <サーブレット名> HelloServlet </サーブレット名> <サーブレットクラス> mypackage.HelloServlet </サーブレットクラス> < /サーブレット>
<サーブレット マッピング>
<サーブレット名> HelloServlet </サーブレット名> <URL パターン> /HelloServlet </URL パターン> </サーブレット マッピング>
<resource-ref>
<description>電子メールメッセージ
の送信に使用できるjavax.mail.Session
インスタンスのファクトリへのリソース参照。適切なSMTPサーバー
に接続するように事前構成されています。</description> <res-ref-name> mail/ Session </res-ref-name> <res-type> javax.mail.Session </res-type> <res-auth>コンテナ</res-auth> </resource-ref> </web-app>
ディレクトリは、クラス ローダーのクラスパス/WEB-INF/classes上にあります。(クラスパスは、JVM によってファイルがロードおよび実行される場所のリストで構成されます。)ディレクトリには、Web アプリケーション自体に関連付けられたクラスが含まれます。
.class/WEB-INF/classes
ディレクトリに配置されたすべての JAR ファイル/WEB-INF/libも、クラス ローダーのクラスパスに配置されます。
参照
参考文献
- ^ Crossley, Allistair. 「Apache Tomcat 8 (8.0.44) - Tomcat Web アプリケーションのデプロイメント」. Apache Software Foundation . 2017 年 6 月 27 日閲覧。
- ^ Hunter, Jason (1999-10-15). 「Java Servlet API 2.2 の新機能?」JavaWorld . 2020-11-08閲覧。
- ^ 「Web アプリケーション ライフサイクル」。Java EE 6 チュートリアル。Oracle 。
- ^ 「実行中の Tomcat サーバーへのデプロイ」。Apache Software Foundation。
外部リンク
- Web アーカイブのパッケージ化 ( Wayback Machineで 2020-11-06 にアーカイブ) (Jakarta EE 8 チュートリアル)
- JSR 154: JavaTM サーブレット 2.4 仕様
