Tomcatデータソースの構成と導入


データソース
Tomcat 5のデータソース構成はTomcat 5.5のデータソース構成と多くの違いがあり、Tomcat 6のデータソース構成はTomcat 5.5の構成と基本的に同じである.
従来のTomcat 5の構成はserver.xmlファイルで構成するか、conf/Catalina/localhostの下にある対応するコンテキストプロファイルで構成します.このような構成が不合理なのは、データベースが変更された場合、プログラマーがこれらのファイルを手動で修正する必要があり、チーム開発に不利であることです.
Tomcat 5.5とTomcat 6の配置はもっと簡単に見えます.WebRootディレクトリの下にMETA-INFディレクトリを新規作成し(存在しない場合)、そのディレクトリの下にcontextを作成するだけです.xmlファイル、context.xmlファイルは、次の構成情報を追加します.
プログラムコードプログラムコード
<Context>
  <Resource name="jdbc/test" auth="Container" type="javax.sql.DataSource"
               maxActive="50" maxIdle="30" maxWait="10000" logAbandoned="true"
               username="root" password="root" driverClassName="com.mysql.jdbc.Driver"
               url="jdbc:mysql://localhost:3306/temp"/>
</Context>

次のようになります.
nameは指定したjndi名を表します
authは認証方式を表し、一般的にContainer
typeはデータソースのベッド型を表す、標準のjavaxを用いる.sql.DataSource
maxActiveは、接続プール内で最大のデータベース接続を表します.
maxIdleは最大アイドル接続数を表します
maxWaitプールのデータベース接続が使用されている場合、最大待機時間
logAbandonedは、破棄されたデータベース接続が記録されているかどうかを示し、追跡します.
usernameはデータベースユーザー名を表します
passwordはデータベース・ユーザーのパスワードを表します
driverClassNameはJDBC DRIVERを表します
urlはデータベースURLアドレスを表します
従来のtomcatではwebも必要である.xmlは対応するresourceを指定し、tomcat 5.5以降のバージョンでは書かなくてもいいですが、構成することをお勧めします.
プログラムコードプログラムコード
  <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/test</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>

構成が完了したら、JDBC DRIVERを%TOMCAT_に保存する必要があります.HOME%/libの中で、これは必要で、さもなくば、tomcatはdriverを見つけることができなくて、それからtomcatを再起動します
最後に、データソースが正しいかどうかをテストし、testを書きます.jsp、test.jspはDataSourceを得て、以下はプログラムの断片です
プログラムコードプログラムコード
Context initContext = new InitialContext();
Context envContext  = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/test");
Connection conn = ds.getConnection();

配置
tomcat起動時、デフォルトではwebappパスのwebアプリケーションがロードされ、任意のパスの下のwebアプリケーションに一致するようにContext要素を構成できます
Context要素共通属性
docBase
Webアプリケーションのドキュメントルートディレクトリ、またはwarパッケージパス名を指定し、絶対パス名を指定したり、Host要素、appBase属性に基づく相対パスを指定したりします.
path
Webはコンテキストパスを適用し、空の文字列「」を指定すると、仮想ホストのデフォルトのWebアプリケーションが定義され、localhostにアクセスできます.
reloadable
WEB-INF/classesディレクトリ変更ファイルを再自動ロードするかどうか
unpackWAR
Tomcat Webアプリケーションの実行時にwarパッケージを自動的に解凍
1,conf/server.xmlファイルにhost要素を追加
<Host name="localhost"  appBase="webapps"
      unpackWARs="true" autoDeploy="true"
      xmlValidation="false" xmlNamespaceAware="false">
  <Context path="/test" docBase="D:\jsp-examples" reloadable="true"/>
</Host>

2,confCatalinalocalhostパスでxmlファイルを作成する
<Context path="/test" docBase="D:\jsp-examples" reloadable="true"/>
このときpath属性は機能せず、xmlファイル名をwebアプリケーションのコンテキストパスとする
WARパッケージ
パブリッシュするWebアプリケーションのパスで、
WARバッグを打つ:jar-cvf name.war *
WARパッケージの内容を見る:jar-tf name.war
Tomcatにおけるservletの別の動作--servlet呼び出し器confweb.xmlファイルには、以下のような注釈があります.

    <servlet>
        <servlet-name>invoker</servlet-name>
        <servlet-class>
          org.apache.catalina.servlets.InvokerServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>
コメントをキャンセルするとlocalhost:8080/webAppName/servlet/xxxを使用できます.yyy.zzz.AAAServletはプロジェクトのwebに直接アクセスする必要はありません.xmlファイルでの構成