[Tomcat] Tomcatへのwebアプリのデプロイ方法(jarファイル編)

何かと忘れがちなので、Tomcatへのアプリケーションのデプロイ方法をまとめておく。

Tomcatのディレクトリ構成

Tomcatのホームディレクトリはもちろんインストールの仕方によって変わるけれども、私の場合は「/usr/share/tomcat6」だった。CentOS6.4です。

で、この下にいくつかのフォルダがある。
主要なフォルダは「conf」と「webapps」の2つ。この2つを押さえておけばひとまずOK。

「conf」ディレクトリ

シンボリックリンクで「/etc/tomcat6」につながっている。
server.xml、web.xml、tomcat-users.xmlなどの設定ファイルがある。
ちなみに、ここにあるweb.xmlとは別に個々のアプリでweb.xmlを作ります。

「webapps」ディレクトリ

シンボリックリンクで「/var/lib/tomcat6/webapps」につながっている。
webアプリの配備先。

jarファイルを配置

以下の5つの順序でデプロイしていきます。

1.webappsに新規ディレクトリ作成

ディレクトリ名がURLになります。例えば、ディレクトリ名が「testtest」だったら、URLは「http://localhost:8080/testtest」という感じ。
他人に見える部分なのであんまり変な言葉にはできないですね!

2.WEB-INFディレクトリ作成

1で作成した新規ディレクトリの下にWEB-INFという名前のディレクトリを作成します。この名前はTomcatで決まってます。「webapps/testtest/WEB-INF」という感じ。

3.libディレクトリ作成

2で作成したWEB-INFの下にlibというディレクトリを作成します。この名前も決まってます。そして、jarファイルはこのlibディレクトリに置くと決まっています。「webapps/testtest/WEB-INF/lib」という感じ。

4.jarファイルデプロイ

3で作ったディレクトリにjarファイルをデプロイします。デプロイって言うとカッコいいですが、アップロードするだけですね(笑)
ちなみに、私はjarファイルはEclipseで作りました。スタンダードですよね。

5.web.xml作成

最後に2で作ったWEB-INFのディレクトリにweb.xmlを作成します。このweb.xmlというのは、jarファイルのクラスとURLをマッピングする役割です。

以下、web.xmlのサンプルです。

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
      version="3.0">

	<servlet>
		<servlet-name>HelloWorldServlet</servlet-name>
    	    <servlet-class>net.tazakazushi.hello.HelloWorld</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>HelloWorldServlet</servlet-name>
		<url-pattern>/*</url-pattern>
	</servlet-mapping>

</web-app>

この設定だと、8~11行目でパッケージ名「net.tazakazushi.hello」のjarファイルの「HelloWorld」というクラス名に対して、「HelloWorldServlet」というサーブレット名をつけています。

さらに、13~16行目で「HelloWorldServlet」というサーブレットに対して、「/*」というURLを紐付けています。「*」は全てという意味なので、全てのURLがこのサーブレットにひも付きます。
全て、とは言っても、そもそもこのディレクトリは「testtest」という名前にしていたので、「http://localhost:8080/testtest/」以下が全てひも付きます。

表示を確認

「http://localhost:8080/testtest/」にアクセスしてみて、きちんと表示されたらOKです。絶対正しいはずなのにエラーの場合は、Tomcatを再起動させてみるといいかも。

タイトルとURLをコピーしました