tomcat資料來源配置

來源:互聯網
上載者:User

標籤:des   io   os   使用   java   檔案   sp   資料   on   

首先定義tomcat6的安裝根目錄為 ${CATALINA_HOME}

在tomcat6版本中,context元素已經從server.xml檔案中獨立出來了,放在一個context.xml檔案中。
因為server.xml是不可動態重載入的資源,伺服器一旦啟動了以後,要修改這個檔案,就得重啟伺服器才能重新載入。而context.xml檔案則不然,tomcat伺服器會定時去掃描這個檔案。一旦發現檔案被修改(時間戳記改變了),就會自動重新載入這個檔案,而不需要重啟伺服器。我們當然推薦把應用需要的JNDI資源配置在context.xml檔案中,而不是server.xml檔案中。

由於context元素的可用範圍是可以控制的,我們可以根據需要為Context元素定義不同層級的可用範圍。

一. 全域可用
全域可用的範圍意味著tomcat伺服器下面的所有應用都可以使用這個context元素定義的資源。

全域可用範圍的context元素在檔案 ${CATALINA_HOME}/conf/context.xml 檔案中描述。這個檔案在tomcat剛剛被安裝的時候,是沒有定義任何資源的。我們可以看到,這個檔案的內容:
<Context>
    <WatchedResource>WEB-INF/web.xml</WatchedResource>

Context>

其中的 <watchedresource></watchedresource>WEB-INF/web.xml表示伺服器會監視應用的WEB-INF/web.xml 檔案來知道那個應用會引用在此處定義的資源。

二. 指定的虛擬機器主機可用
指定的虛擬機器主機內可用就是說,在tomcat伺服器配置的虛擬機器主機中,只有指定的那個虛擬機器主機上跑的應用才能使用。什麼是虛擬機器主機和如何配置虛擬機器主機在這裡就不描述了,有興趣的同學自己去查tomcat的官方資料。要配置一個虛擬機器主機可用的context資源,可以在${CATALINA_HOME}/conf/目錄下的檔案 ${enginename}/${hostname}/context.xml.default 中表述。

比如,一般一個tomcat伺服器安裝好了以後,都有一個預設的叫做 Catalina 的引擎,在這個引擎下有一個叫做 localhost 的虛擬機器主機。我們的應用一般都放在這個虛擬機器主機下。關於這個虛擬機器主機的配置,不再本文表述,有興趣的同學可以自己去查tomcat的官方文檔。那麼,如果我們想要配置一個在 Catalina/localhost 虛擬機器主機下都可以使用的資源,我們需要在目錄 ${CATALINA_HOME}/conf 下建立路徑 Catalina/localhost,在這個路徑下建立檔案 context.xml.default。全路徑是 ${CATALINA_HOME}/conf/Catalina/localhost/context.xml.default


三. 指定的應用可用
顧名思義,一個指定的應用可用的context元素,意味著這是一個只有指定的引擎,指定的虛擬機器主機,指定的應用才可以使用的context元素。

如果我們用appname來代表這個指定的這個指定的應用的名字,那麼元素的定義應該被放置在 ${CATALINA_HOME}/conf/${enginename}/${hostname}/${appname}.xml檔案中。

例如,假設在localhost下我們有一個web應用叫做webtest,那麼我們應該建立檔案 ${CATALINA_HOME}/conf/Catalina/localhost/webtest.xml。


Tomcat6.0資料來源配置
方法一:
1.配置tomcat下的conf下的context.xml檔案,在之間添加串連池配置:
<Resource name="jdbc/mydb"
       auth="Container"
       type="javax.sql.DataSource"
       driverClassName="oracle.jdbc.driver.OracleDriver"
       url="jdbc:oracle:thin:@localhost:1521:mydb"
       username="bmgis"
       password="bmgis"
       maxActive="100"
       maxIdle="30"
       maxWait="10000" />
2.配置你的應用下的web.xml中的之間加入:
<resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/mydb</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
</resource-ref>
在以往的tomcat當中還需要在web.xml指定相應的resource,在tomcat 5.5以後的版本不寫也可以,但建議還是配置。

3.把串連資料庫的第三方驅動放到${CATALINA_HOME}/lib下面就ok了
4.測試程式test.jsp如下:
<%@ page import="javax.naming.*"%>
<%@ page import="java.sql.*"%>
<%@ page import="javax.sql.*"%>
<%
Context initContext = new InitialContext();
Context envContext  = (Context)initContext.lookup("java:/comp/env");
DataSource ds = (DataSource)envContext.lookup("jdbc/myoracle");
Connection conn = ds.getConnection();
conn.close();
%>

 

方法二:
我們只需要在WebRoot目錄下,建立一個META-INF的目錄(假如不存在,注意目錄名稱大寫),
在該目錄下建立一個context.xml檔案,並且在context.xml檔案當添加以下的配置資訊:
<Context>
 <Resource name="jdbc/mydb"
       auth="Container"
       type="javax.sql.DataSource"
       driverClassName="oracle.jdbc.driver.OracleDriver"
       url="jdbc:oracle:thin:@localhost:1521:mydb"
       username="bmgis"
       password="bmgis"
       maxActive="100"
       maxIdle="30"
       maxWait="10000"
    logAbandoned="true" />
</Context>
其中:
name 表示指定的jndi名稱
auth 表示認證方式,一般為Container
type 表示資料來源床型,使用標準的javax.sql.DataSource
maxActive 表示串連池當中最大的資料庫連接
maxIdle 表示最大的空閑串連數
maxWait 當池的資料庫連接已經被佔用的時候,最大等待時間
logAbandoned 表示被丟棄的資料庫連接是否做記錄,以便跟蹤
username 表示資料庫使用者名稱
password 表示資料庫使用者的密碼
driverClassName 表示JDBC DRIVER
url 表示資料庫URL地址

此方法二一樣適用Tomcat5.5

 

Tomcat5.5x資料來源配置

方式一、全域資料庫串連池
1、通過管理介面配置串連池,或者直接在${CATALINA_HOME}/conf/server.xml的GlobalNamingResources中增加
<Resource name="jdbc/mydb" type="javax.sql.DataSource"
 username="bmgis" password="bmgis"
 driverClassName="oracle.jdbc.driver.OracleDriver"
 url="jdbc:oracle:thin:@localhost:1521:mydb"
 maxIdle="2" maxWait="5000" maxActive="4"/>
2、在${CATALINA_HOME}/webapps/myapp/META-INF/context.xml的Context中增加:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
這樣就可以了。

方式二、全域資料庫串連池
1、同上
2、在${CATALINA_HOME}/conf/context.xml的Context中增加:
<ResourceLink global="jdbc/mydb" name="jdbc/mydb" type="javax.sql.DataSource"/>
方式三、局部資料庫連接池
只需在${CATALINA_HOME}/webapps/myapps/META-INF/context.xml的Context中增加:
<Resource name="jdbc/mydb" type="javax.sql.DataSource"
 username="bmgis" password="bmgis"
 url="jdbc:oracle:thin:@localhost:1521:mydb"
 driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
 maxIdle="2" maxWait="5000" maxActive="4"/>

tomcat資料來源配置

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.