検索
連載

WebアプリケーションをwarファイルでまとめるJavaTips 〜JSP/サーブレット編

Share
Tweet
LINE
Hatena

 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.

ページトップに戻る