天天看點

Tomcat5配置資料源

Tomcat5配置資料源的方法

     在網上看到很多人問Tomcat5配置資料源的方法,結合自己的實踐介紹一下Tomcat5如何通過直接修改配置檔案和通過控制台兩種方法來實作資料源的配置。

     在Tomcat5裡,即使配置了全局資料源仍然需要配置Web應用的局部資料源才可以使用(Tomcat5.5和Tomcat6.0這裡不涉及)

一、直接修改配置檔案配置資料源

     直接修改配置檔案有兩種方法,一種是添加全局資料源連接配接,然後添加Web應用的資料源連接配接,link到全局資料源連接配接,一種是隻添加Web應用的局部資料源連接配接(其實通過控制台配置資料源也是修改配置檔案,隻不過是通過可視化的IE視窗來完成而已)

      這裡介紹隻配置Web應用的局部資料源的方法。

      可以在兩個地方配置Web應用的局部資料源,

1、修改server.xml

      找到Tomcat根目錄,在conf檔案夾下找到server.xml檔案,找到<Host></Host>标簽,在</Host>前面加入下面的代碼

<Context path="/web應用名" docBase="web應用名" debug="5" reloadable="true" crossContext="true">       
    <Logger className="org.apache.catalina.logger.FileLogger" prefix="localhost_citbj_log." suffix=".txt" timestamp="true"/>       
    <Resource name="jdbc/datasource" auth="Container" type="javax.sql.DataSource"/>       
    <ResourceParams name="資料源名稱">       
        <parameter>       
            <name>factory</name>       
            <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>       
        </parameter>       
        <parameter>       
            <name>maxActive</name>       
            <value>100</value>       
        </parameter>       
        <parameter>       
            <name>maxIdle</name>       
            <value>30</value>       
        </parameter>       
        <parameter>       
            <name>maxWait</name>       
            <value>10000</value>       
        </parameter>       
        <parameter>       
            <name>username</name>       
            <value>資料庫使用者名</value>       
        </parameter>       
        <parameter>       
            <name>password</name>       
            <value>資料庫密碼</value>       
        </parameter>       
        <parameter>     
            <name>driverClassName</name>       
            <value>com.mysql.jdbc.Driver</value>       
        </parameter>       
        <parameter>       
            <name>url</name>       
            <value>資料庫連接配接</value>       
        </parameter>       
    </ResourceParams>       
</Context>      

web應用名是工程的名字,資料庫我使用的是MysqL,DataBase是test

是以資料庫連接配接是:jdbc:mysql://localhost:3306/test?autoReconnect=true,Oracle,Sqlserver等的連接配接大家可以從網上找到,這裡不列舉。

配置好Server.xml後,把mysql的驅動包放入Tomcat根目錄下的common\lib檔案夾下,缺少這個驅動,測試時會抛出異常

Cannot load JDBC driver class 'com.mysql.jdbc.Driver'

完成上面兩步就可以測試了

測試代碼 

Context initContext = new InitialContext();    
Context envContext = (Context)initContext.lookup("java:/comp/env");    
DataSource ds = (DataSource)envContext.lookup("資料源名稱");    
Connection conn = ds.getConnection();    
System.out.println(conn);  
           

 這裡資料源名稱就是上面server.xml裡的資料源名稱,兩個名稱要保持一緻

控制台輸出類似[email protected]的語句,測試成功!

怎麼樣,很簡單吧!

2、自定義配置檔案

     除了修改server.xml,還可以自己定義一個配置檔案。

     在Tomcat的根目錄下,找到conf\Catalina\localhost目錄,建立一個檔案context.xml(任意檔案名都可以,不一定必須是context),把上面的配置代碼拷貝到context.xml裡,修改一下其中的web應用名,資料庫連接配接的相關資訊,把mysql的驅動包放入Tomcat根目錄下的common\lib檔案夾下,用測試代碼測試。

控制台輸出類似[email protected]的語句,測試成功!

二、通過控制台配置資料源

      通過控制台配置資料源也有兩種方式,一種是先配置全局資料源,然後在配置局部資料源,(配置了全局資料源依然需要局部資料源,否則抛出Name jdbc is not bound in this Context錯誤);一種是直接配置局部資料源。由于隻配置局部資料源就可以達到目的,這裡介紹隻配置局部資料源的方法。

      啟動Tomcat5,IE位址欄輸入http://localhost:8080/admin進入控制台,展開左側Tomcat Server,注意,點選字前面的小鑰匙就可以了,點選字是打開目前項,而不是展開菜單。如圖所示:

Tomcat5配置資料源

      找到工程(我的是northking),展開後,點選Data Sources,在右側上面的Data Source Actions處的下拉清單中選擇Create New Data Source ,填寫各項資訊,如圖所示:

Tomcat5配置資料源

       這裡JNDI Name就是資料源的名字,測試代碼裡的資料源名稱要和這裡保持一緻,否則找不到資料源。

      點選save,然後點選頁面上方的Commit Changes,這時,去觀察server.xml會發現找個檔案的内容被改變了,而且在conf\Catalina\localhost目錄下多出來一個檔案 — 工程名.xml,我的是northking.xml,打開這個檔案會看到,裡面的代碼和直接修改配置檔案添加的代碼是相同的,Tomcat啟動時會讀取這個檔案。把mysql的驅動包放入Tomcat根目錄下的common\lib檔案夾下,重新開機Tomcat,用測試代碼測試,

      控制台輸出類似[email protected]的語句,測試成功!

總結:直接修改配置檔案和控制台配置兩種方式,最終的結果都是在xml檔案中添加一段配置資訊,進而使Tomcat在啟動時讀取到配置資訊,達到配置資料源的目的。