Javaに関する様々な情報をご紹介します。

3Tomcat向けタスク

Javaに関する様々な情報をご紹介します。

Tomcat向けタスク

Tomcatでは、Tomcatを操作できるAntタスクが用意されています。ここではそのAntタスクについて解説します。AntタスクはTomcatのWeb Application Managerの機能を通じてTomcatを操作します。Web Application Managerの詳細についてはJavaの道:Tomcat(Web Application Manager)を参照してください。

実行環境
  • ・Windows2000 Professional
  • ・J2SDK 1.4.1_05
  • ・Ant 1.6.1
  • ・Tomcat 5.0.18

事前準備

Tomcat向けAntタスクを使用するために、以下の設定をします。

  1. catalina-ant.jarファイルの設置

    $CATALINA_HOME\server\libディレクトリ配下にあるcatalina-ant.jarを$ANT_HOME\libディレクトリ配下に設置します。

  2. ID、Passwordの設定

    Web Application ManagerにログインするためのID、Passwordを設定します。ID、Passwordはmanagerロールに属している必要があります。デフォルトの設定では$CATALINA_HOME\confディレクトリ配下のtomcat-users.xmlに以下の設定をします。

    tomcat-users.xml

    <?xml version='1.0' encoding='utf-8'?>
    
    <tomcat-users>
        <role rolename-"tomat"/>
        <role rolename="role1"/>
        <role rolename="manager"/>
        ----------------------------------
        ----------------------------------
        <!-- username属性にID、password属性にPasswordを設定する。 -->
        <user username="admin" password="admin" roles="manager"/>
    </tomcat-users>
  3. <taskdef>タグの設定

    Antにあらかじめ用意されていないタスクを使用する場合は、build.xmlに<taskdef>タグで使用するタスクを宣言する必要があります。

    build.xml

    ----------------------------------
    ----------------------------------
    
    <!-- taskdefタグでタスクを宣言する。 -->
    <taskdef name="list"
             classname="org.apache.catalina.ant.ListTask"/>
    <taskdef name="install"
             classname="org.apache.catalina.ant.InstallTask"/>
    <taskdef name="remove"
             classname="org.apache.catalina.ant.RemoveTask"/>
    <taskdef name="start"
             classname="org.apache.catalina.ant.StartTask"/>
    <taskdef name="stop"
             classname="org.apache.catalina.ant.StopTask"/>
    <taskdef name="reload"
             classname="org.apache.catalina.ant.ReloadTask"/>
    <taskdef name="deploy"
             classname="org.apache.catalina.ant.DeployTask"/>
    <taskdef name="undeploy"
             classname="org.apache.catalina.ant.UndeployTask"/>
    <taskdef name="resources"
             classname="org.apache.catalina.ant.ResourcesTask"/>
    <taskdef name="roles"
             classname="org.apache.catalina.ant.RolesTask"/>
    
    ----------------------------------
    ----------------------------------
  4. Tomcatの起動

    TomcatのWeb Application Manager経由でタスクを実行するため、タスクを実行する際はTomcatを起動しておく必要があります。

タスク一覧

Tomcat向けタスクで使用される属性について解説します。Tomcat向けタスクは以下に解説する属性を元に動作します。

Tomcat向けタスクで利用する属性

属性 内容
url Web Application ManagerのURLを指定します。指定しない場合は、http://localhost:8080/managerが適用されます。
username Web Application ManagerにログインするためのIDを指定します。IDはmanagerロールに属している必要があります。
password Web Application ManagerにログインするためのPasswordを指定します。Passwordはmanagerロールに属している必要があります。
config コンテキスト.xmlへのパスを指定します。デフォルト設定以外の方法でコンテキストをインストールする場合に指定します。
path 操作の対象となるコンテキストへのURLパス名を指定します。パス名は/から始まります。
war

コンテキストの構成要素をwarファイルもしくは、ディレクトリで指定します。指定フォーマットは以下のようになります。

  • Tomcatサーバ上のディレクトリを指定する場合
    構文:file:/該当ディレクトリへのパス
    例:file:/C:\con
  • Tomcatサーバ上のWARファイルを指定する場合
    構文:file:/該当WARファイルへのパス
    例:file:/C:\con.war
  • リモート環境からWARファイルを指定する場合
    構文:jar:file:/該当WARファイルへのパス!/
    例:jar:file:/C:\con.war!/
  • リモート環境からWARファイルをHTTP経由で指定する場合
    構文:jar:http://hostname:port/該当WARファイルへのパス!/
    例:jar:http://www.tomcat.com/con.war!/

list

実行中のコンテキストの一覧を表示します。一覧は「コンテキスト名:ステータス:セッション数」のフォーマットで表示されます。

【listに設定できる属性】
url, username, password
【listの使用例】
<target name="list">
    <list url="http://localhost:8080/manager"
          username="admin"
          password="admin"/>
</target>

install

指定したコンテキストをTomcatにインストールします。一時的にインストールするだけであり、Tomcatを再起動するとインストールは無効になります。デバッグ作業時に使用します。完全にTomcatにインストールしたい場合はdeployタスクを使用します。

【installに設定できる属性】
url, username, password, config, path, war
【installの使用例】
<target name="install">
    <install url="http://localhost:8080/manager"
             username="admin"
             password="admin"
             path="/test"
             war="file:/C:\java\Tomcat_test"/>
</target>

remove

指定したコンテキストをTomcatからアンインストールします。コンテキストの情報をTomcatのメモリから削除するだけであり、コンテキスト構成ファイル、warファイルの削除は行いません。installタスクと逆の動作をします。コンテキスト構成ファイルの削除、コンテキスト.xmlの変更を行いたい場合はundeployタスクを使用します。

【removeに設定できる属性】
url, username, password, path
【removeの使用例】
<target name="remove">
    <remove url="http://localhost:8080/manager"
            username="admin"
            password="admin"
            path="/test"/>
</target>

start

指定したコンテキストを起動させます。コンテキストはpath属性で指定します。

【startに設定できる属性】
url, username, password, path
【startの使用例】
<target name="start">
    <start url="http://localhost:8080/manager"
           username="admin"
           password="admin"
           path="/test"/>
</target>

stop

指定したコンテキストを停止させます。コンテキストはpath属性で指定します。

【stopに設定できる属性】
url, username, password, path
【stopの使用例】
<target name="stop">
    <stop url="http://localhost:8080/manager"
          username="admin"
          password="admin"
          path="/test"/>
</target>

reload

指定したコンテキストを再起動させます。コンテキストはpath属性で指定します。サーブレットの変更、web.xmlの変更など変更内容を反映させるために再起動が必要な場合に使用します。

【reloadに設定できる属性】
url, username, password, path
【reloadの使用例】
<target name="reload">
    <reload url="http://localhost:8080/manager"
            username="admin"
            password="admin"
            path="/test"/>
</target>

deploy

指定したコンテキストをTomcatにデプロイします。installとの違いはTomcatを再起動した後もコンテキストがデプロイされたまま(コンテキストが利用可能)ということです。deployを実行した後はコンテキスト構成ファイルとwarファイルが$CATALINA_HOME\webappsディレクトリ配下に生成されます。deployタスクを使用する場合、war属性は「file:/該当WARファイルへのパス 」の構文を指定する必要があります。

【deployに設定できる属性】
url, username, password, config, path, war
【deployの使用例】
<target name="deploy">
    <deploy url="http://localhost:8080/manager"
            username="admin"
            password="admin"
            path="/test"
            war="file:/C:\java\test.war"/>
</target>

undeploy

指定したコンテキストをTomcatからアンデプロイします。removeとの違いはコンテキスト構成ファイル、warファイルも削除されることです。deployタスクと逆の動作をします。

【undeployに設定できる属性】
url, username, password, path
【undeployの使用例】
<target name="undeploy">
    <undeploy url="http://localhost:8080/manager"
              username="admin"
              password="admin"
              path="/test"/>
</target>

resources

使用可能なJNDIリソースの一覧を表示します。type属性を指定することにより、表示するJNDIリソースを制限することができます。

【resourcesに設定できる属性】
url, username, password, type
【resourcesの使用例】
<target name="resources">
    <resources url="http://localhost:8080/manager"
               username="admin"
               password="admin"
               type="javax.sql.DataSource"/>
</target>

roles

設定しているセキュリティロールの一覧を表示します。

【rolesに設定できる属性】
url, username, password
【rolesの使用例】
<target name="roles">
    <roles url="http://localhost:8080/manager"
           username="admin"
           password="admin"/>
</target>

3Tomcat向けタスク