標籤: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資料來源配置