Webアプリケーションには、jspファイル以外にも、classファイル、jarファイル、xmlファイル、tldファイル、htmlファイル、txtファイル、jpgファイルなど、多くのファイルが含まれています。これらのファイル群を、zipやtar+gzipなどのアーカイブ&圧縮形式でまとめて配布することも可能ですが、war形式(Web Archive Resources)で配布すると、便利な機能を利用することができます。
実際のところ、warファイルはzip形式で圧縮されたアーカイブにすぎません。しかし、ほかの形式とは異なり、warファイルを規定のアプリケーションフォルダ(Tomcatなら、%CATALINA_HOME%\webapps)にコピーしておくと、コンテナの(再)起動時に自動的に展開され、Webブラウザからアクセス可能になるという利点があります。
注意:ただし、Tomcatでは、Server.xmlのHost要素においてunpackWARs属性が“false”に設定されている場合、warファイルの自動展開は行われません。また、Server.xmlに該当するコンテキスト情報(Context要素)が書き込まれている場合にもwarファイルが自動展開されないことがあるので、その場合には該当のContext要素を削除してから、コンテナの再起動を行ってください。
つまり、Webアプリケーションに必要なファイル(拡張ライブラリなど)をすべてwarファイル内に格納して、アプリケーションフォルダへ置いておくだけで、ユーザーは「何も考えなくても」Webアプリケーションを利用できるのです。
このように、warファイルを利用するのは非常に簡単ですが、作成も難しくありません。例えば、%CATALINA_HOME%\webapps\javatipsフォルダ内のファイル群をwarファイルに格納したい場合、jarコマンドにcvfオプションを付加して、そのパス名を引数として渡すだけです(なお、%CATALINA_HOME%は、Tomcatのインストールフォルダを表すWindowsの環境変数です)。
> cd %CATALINA_HOME%\webapps\javatips > jar cvf javatips.war *
これで、%CATALINA_HOME%\webapps\javatipsフォルダ内のファイル群をまとめたjavatips.warがカレントフォルダ(ここでは%CATALINA_HOME%\webapps\javatips)内に生成されます。
jarコマンドは、さまざまなオプションを指定することが可能です。特に、主要なオプションを以下に紹介します。
オプション | 概要 | |
---|---|---|
-c | アーカイブの新規作成 | |
-u | 既存アーカイブの更新 | |
-v | 標準出力に詳細を表示 | |
-f | アーカイブファイル名を指定 | |
-m | 指定のマニフェストファイル(アーカイブの構成情報)からマニフェスト情報をインポート | |
-0 | 格納のみで、ZIP圧縮を使用しない | |
-M | マニフェストファイルを作成しない | |
-C | 指定されたフォルダ内のファイルをアーカイブする |
Copyright © ITmedia, Inc. All Rights Reserved.