Tomcatインストール - Javaサーブレット・JSPを処理するアプリケーションサーバ

◆Tomcatのインストール
 ・そこらじゅうに情報が転がってるので省略

◆Apacheとの連携
 ・Tomcatはデフォルトでは、ポート8080でリクエストを受け付ける為、Tomcatへのアクセスは http://example.com:8080/sample/ とかやらないとダメだけど、
   mod_jk2などのコネクタを利用してApacheと連携すれば、通常のポート80で接続しても Apacheが Tomcatへの処理要求のみ Tomcatへの投げてくれる。

 ・今のところ外部に公開の予定もないので省略

◆JDBCドライバのインストール(PostgreSQLの場合)
 ・JDBCドライバを http://jdbc.postgresql.org/ からダウンロードする。
 ・ダウンロードしたファイルを(pgXXXdbc3.jar)を %CATALINA_HOME%/common/lib に配置する。

◆コネクションプーリングの設定
 ・コネクションプールとは、時間のかかるDB接続を短縮する為に、DB接続を最初から一定数確保しておいて
  要求がある度に確保(プール)しておいた接続を使い回すしくみ。
  (規模の大きいアプリなどには必須となる設定だと思いまふ。。)

 ・TOMCATではコネクションプーリングの機能が標準で提供されています。
  で、コネクションプーリングを利用するには、以下の2つのファイルを編集する必要がある。

1%CATALINA_HOME%/conf/Catalina/localhost/アプリケーション名.xml
2アプリケーションルート/WEB-INF/web.xml

  ※(1)のファイルはダウンロードしたTomcatのドキュメントには %CATALINA_HOME%/conf/server.xml を編集するように書かれていたが
   うまくいかなかったので、%CATALINA_HOME%/conf/近辺を徘徊してたらこのファイルを発見。で、編集したらうまくいった。
   (別のアプリから利用する事がある場合は、やっぱりserver.xmlに記述しないとダメだけど。。)

 (1) %CATALINA_HOME%/conf/Catalina/localhost/アプリケーション名.xmlの編集(赤字部分を追加)

<?xml version='1.0' encoding='utf-8'?>
<Context path="/アプリケーション名" docBase="アプリケーションPATH"
            debug="0" reloadable="false" crossContext="true">

  <Resource name="jdbc/TestDB" auth="container"
             type="javax.sql.DataSource" debug="1" />

  <ResourceParams name="jdbc/TestDB">
    <parameter>
      <name>factory</name>
      <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
    </parameter>
    <parameter>
       <name>driverClassName</name>
       <value>org.postgresql.Driver</value>
    </parameter>
    <parameter>
      <name>url</name>
      <value>jdbc:postgresql://localhost/TestDB</value>
    </parameter>
    <parameter>
      <name>username</name>
      <value>username</value>
    </parameter>
    <parameter>
      <name>password</name>
      <value>password</value>
    </parameter>
    <parameter>
      <name>maxWait</name>
      <value>10000</value>
    </parameter>
    <parameter>
      <name>maxActive</name>
      <value>100</value>
    </parameter>
    <parameter>
      <name>maxIdle</name>
      <value>30</value>
    </parameter>
  </ResourceParams>
</Context>

 ◆パラメータ説明

パラメータ説明
nameデータソース名
driverClassNameJDBCドライバ名
usernameDBユーザ名
passwordDBパスワード
urlDBへの接続文字列
maxActiveプール内の最大接続数
maxWait接続に空きが無い場合の最大持ち時間(ミリ秒)
maxIdle待機時に持続する接続数
validationQuery接続検証用のクエリ

 (2) アプリケーションルート/WEB-INF/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">
   ・
     中略
   ・
    <resource-ref>
        <description>DB Connection</description>
        <res-ref-name>jdbc/TestDB</res-ref-name>
        <res-type>javax.sql.DataSource</res-type>
        <res-auth>Container</res-auth>
    </resource-ref> 
</web-app>

◆jsp用の設定
   ・アプリケーションルート/WEB-INF/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">
   ・
     中略
   ・
    
      <jsp-property-group>
      <url-pattern>*.jsp</url-pattern>
      <el-ignored>false</el-ignored>
      <page-encoding>Windows-31J</page-encoding> ・・・(1)
      <scripting-invalid>false</scripting-invalid>
      <include-prelude>/header.jsp</include-prelude> ・・・(2)
      </jsp-property-group>
      <taglib>
        <taglib-uri>/tags/struts-html</taglib-uri> ・・・(3)
        <taglib-location>/WEB-INF/struts-html.tld</taglib-location> ・・・(4)
      </taglib>
      <taglib>
        <taglib-uri>/tags/struts-bean</taglib-uri>
        <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
      </taglib>
      <taglib>
        <taglib-uri>/tags/struts-tiles</taglib-uri>
        <taglib-location>/WEB-INF/struts-tiles.tld</taglib-location>
      </taglib>
    

</web-app>

(1)jspファイルが出力する文字エンコーディングを指定する。

(2)jspファイルのヘッダ部分に必ず記述する文言を、別ファイルに記述しておく事ができる。

※各ファイルで

%@ page contentType="text/html;charset=Windows-31J" %>

%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
とか記述しなくてよくなる。

(3)(4)タグライブラリのPathに別名つけて登録しておく事ができる。

  <%@ taglib prefix="html" uri="/WEB-INF/struts-html.tld" %>

  と書いていたものが

  <%@ taglib prefix="html" uri="/tags/struts-html" %>

  と書けるようになる。


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-06-11 (木) 00:48:45 (3476d)