MacOSXでTomcat5/WEBアプリケーションの追加

ここまでは主にTomcat同梱のサンプルを使っていたと思いますが、自前のWEBアプリケーションを追加してみましょう。
Tomcat5ではコンテキスト定義がかなりTomcat4と変わっていますのでTomcat4を使われていた方はご注意下さい。WEBアプリケーションは任意のディレクトリに追加できますが、ここでは簡便さのために、/usr/local/tomcat5/webappsの直下にクラスファイルで提供されるサーブレットにより作成された新しいWEBアプリケーションMY-WEB-APPを追加するという前提で説明していきます。

  1. WEBアプリケーションディレクトリMY-WEB-APPの作成とファイル配置
    /usr/local/tomcat5/webappsにMY-WEB-APPディレクトリを作成します。
    また、このMY-WEB-APPディレクトリにWEB-INFディレクトリを作成します。
    さらに、このMY-WEB-APPディレクトリのWEB-INFディレクトリにclassesディレクトリを作成します。

    usr
    + local
       + tomcat5
         + webapps
           + MY-WEB-APP
             + WEB-INF
               + classes

    ここで、MY-WEB-APPディレクトリは新しいWEBアプリケーションのルートディレクトリとなります。このWEBアプリケーションで参照する画像などの各種リソースはMY-WEB-APPディレクトリに(任意の階層構造を用いて)配置していきます。

    WEB-INFディレクトリには、MY-WEB-APPの内容を記述するweb.xmlファイルを配置します。
    また、classesディレクトリにはサーブレットで使用するクラスファイルをパッケージ階層に合わせて配置していきます。例えば、sample.Entryクラスはclassesディレクトリ内のsampleディレクトリの中のEntry.classファイルとして配置します。

    このように必要なリソースとクラスファイルを適切な場所に全て配置します。


  2. web.xmlファイルの作成
    WEBアプリケーションの内容を記述するweb.xmlファイルはTomcat4のものとほぼ同じです。
    詳しい説明はTomcatあるいはJ2EEの記述を参照していただくことにして…
    とりあえず、こんな風な感じでweb.xmlファイルを作成します。
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
    <servlet>
    <servlet-name>
    MyServlet1
    </servlet-name>
    <servlet-class>
    net.ayaori.migrationsample.MyServlet1
    </servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>
    MyServlet1
    </servlet-name>
    <url-pattern>
    /MyServlet1
    </url-pattern>
    </servlet-mapping>

    </web-app>
    これはhttp://localhost/MY-WEB-APP/MyServlet1 でnet.ayaori.migrationsample.MyServlet1を動かす例。
    DTD定義がTomcat4と異なりますが(まあ、Tomcat4のものを移植してもTomcat5独自の機能を使わなければ大丈夫みたいです)、定義の仕方はだいたい従来バージョンと同じ感じです。

  3. コンテキスト定義ファイルの作成
    Tomcat4では、WEBアプリケーションディレクトリの所在や属性を記述する<context>文をserver.xml ファイルに記述しますが、Tomcat5ではこのコンテキスト定義は/usr/local/tomcat5/conf/Catalina/localhost ディレクトリ(Tomcat5導入時のデフォルト構成ままの場合)に、WEBアプリケーション名.xmlファイルとして定義します。このページの例でいえば、MY-WEB-APP.xmlファイルをconfの下のCatalinaの下のlocalhostディレクトリに作成することになります。
    ただし、WEBアプリケーションにデフォルトの振る舞いをさせる場合は、コンテキスト定義ファイルを作成しなくても、webappsディレクトリ以下に正しい構成のWEBアプリケーションディレクトリを構築しておくだけで、Tomcat起動時にWEBアプリケーションとして読み込まれ動作します。
    ここでは、開発時に便利なように、reloadableなWEBアプリケーションにするために、MY-WEB-APP.xmlファイルを作成しておきます。
    次のような内容でMY-WEB-APP.xmlファイルを作成します。
    <Context path="/MY-WEB-APP" docBase="MY-WEB-APP" debug="0" reloadable="true" />
    xml文の内容はTomcat4のserver.xmlに記述するContext文とほぼ同様ですね。


  4. WEBアプリケーションの有効化
    WEBアプリケーションディレクトリの設定が終わりweb.xmlと必要ならばコンテキスト定義ファイルを作成した後、Apacheを停止→Tomcatを停止→Tomcatを起動→Apacheを起動、で新たに定義したWEBアプリケーションが使えるようになります。
    コンテキスト定義でreloadableにtrueを指定しておけば、サーブレット修正時はプログラムの再コンパイルのみで(もちろん、それを自分のWEBアプリケーションのclassesディレクトリに書き出さないとダメですが)、サーバを再起動することなく新しいコードのテストができます。

< Prev | Next >