Tomcat數(shù)據(jù)源配置方法_JBuilder中
更新時(shí)間:2008年10月07日 23:33:38 作者:
今天幫一同事配置一個(gè)數(shù)據(jù)源,采用tomcat5.5.9,本來是個(gè)很簡(jiǎn)單的事,以前也配過,但由于很長(zhǎng)時(shí)間沒用過容器提供的數(shù)據(jù)源了(IOC用慣了),也只記的個(gè)大概了,所以剛開始一配就出錯(cuò)了,google了一下,有很多資料,照著試試卻都不好使(到不是別人說的不對(duì),只是大家用的版本不同)。
其實(shí)tomcat中配置數(shù)據(jù)源有好幾中方式,很靈活,所以也容易相互整竄,個(gè)人認(rèn)為比較簡(jiǎn)單的方法就是在tomcat下的conf文件夾下的server.xml增加
<Context path="/test" docBase="test"
debug= "99" reloadable="true" crossContext="true" verbosity="DEBUG">
<Resource name="jdbc/***" auth="Container"
type="javax.sql.DataSource" password="****"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="2"
maxWait="5000"
username="sa"
url="jdbc:microsoft:sqlserver://192.168.*.*:1433;DatabaseName=***"
maxActive="4"/>
</Context>
注意它是加在</host>前的,另外由于采用的tomcat5.5.9,所以數(shù)據(jù)源的配置信息采用屬性的形式寫,不能用結(jié)點(diǎn)的形式,tomcat5.0.X好象可以。
改了tomcat的server.xml文件后,剩下一個(gè)要改的地方就是在你的web項(xiàng)目中的web.xml中加入引用
<resource-ref>
<description>Resource reference to a factory for java.sql.Connection
instances that may be used for talking to a particular
database that is configured in the server.xml file.</description>
<res-ref-name>jdbc/***</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
僅僅需要改這兩個(gè)地方就能在web程序中使用tomcat提供的數(shù)據(jù)源,但這樣做,你可以將你生成的war包放在容器下運(yùn)行,卻不能在jbuilder中啟動(dòng)項(xiàng)目,因?yàn)閖builder啟動(dòng)web項(xiàng)目時(shí)是不會(huì)去讀你指定的tomcat中的server.xml的,這樣的話數(shù)據(jù)源就不可用了,如果我們不能在jbuilder中啟動(dòng)項(xiàng)目,我門就不能在調(diào)試狀態(tài)下來運(yùn)行了,這樣對(duì)我們來寫程序就沒有太大意義了(當(dāng)然我們可以在外面啟動(dòng)tomcat,采用遠(yuǎn)程調(diào)試的方法,這樣即可以使用數(shù)據(jù)源,也可以調(diào)試修改程序,但這個(gè)有點(diǎn)殺雞用牛刀的意思,不推薦),實(shí)際上jbuilder在啟動(dòng)web項(xiàng)目時(shí)它會(huì)在工程目錄下建立一個(gè)tomcat文件架,它會(huì)去讀conf下的server8080.xml文件(8080為你為tomcat設(shè)定的端口),所以我們要想在jbuilder中啟動(dòng)數(shù)據(jù)源,必須要在該配置文件中加上數(shù)據(jù)源信息),具體的是將server8080.xml中的一條注釋刪掉,(否則它仍然會(huì)是臨時(shí)文件,會(huì)被覆蓋的)在<host>結(jié)點(diǎn)中加上
<Resource name="jdbc/***" auth="Container"
type="javax.sql.DataSource" password="****"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="2"
maxWait="5000"
username="sa"
url="jdbc:microsoft:sqlserver://192.168.*.*:1433;DatabaseName=***"
maxActive="4"/>
注意這里<context>結(jié)點(diǎn)可用它自身的,不要修改,重啟項(xiàng)目,這時(shí)你就可以使用數(shù)據(jù)源了。之所以在jbuilder中啟動(dòng)web項(xiàng)目有點(diǎn)麻煩,是它沒有把項(xiàng)目發(fā)布到tomcat的webapp下面去,而是把tomcat的一些東西拿過來了(相當(dāng)于),象eclispe或idea就沒有這種問題了。
以上所說的配置數(shù)據(jù)源是在tomcat5.5.9下實(shí)驗(yàn)的,估計(jì)5.5.x應(yīng)該都沒啥問題,要是別的tomcat的版本就不保了,誰(shuí)叫咱用的開源的東東了,版本的兼容就不能恭維了!
復(fù)制代碼 代碼如下:
<Context path="/test" docBase="test"
debug= "99" reloadable="true" crossContext="true" verbosity="DEBUG">
<Resource name="jdbc/***" auth="Container"
type="javax.sql.DataSource" password="****"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="2"
maxWait="5000"
username="sa"
url="jdbc:microsoft:sqlserver://192.168.*.*:1433;DatabaseName=***"
maxActive="4"/>
</Context>
注意它是加在</host>前的,另外由于采用的tomcat5.5.9,所以數(shù)據(jù)源的配置信息采用屬性的形式寫,不能用結(jié)點(diǎn)的形式,tomcat5.0.X好象可以。
改了tomcat的server.xml文件后,剩下一個(gè)要改的地方就是在你的web項(xiàng)目中的web.xml中加入引用
復(fù)制代碼 代碼如下:
<resource-ref>
<description>Resource reference to a factory for java.sql.Connection
instances that may be used for talking to a particular
database that is configured in the server.xml file.</description>
<res-ref-name>jdbc/***</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
僅僅需要改這兩個(gè)地方就能在web程序中使用tomcat提供的數(shù)據(jù)源,但這樣做,你可以將你生成的war包放在容器下運(yùn)行,卻不能在jbuilder中啟動(dòng)項(xiàng)目,因?yàn)閖builder啟動(dòng)web項(xiàng)目時(shí)是不會(huì)去讀你指定的tomcat中的server.xml的,這樣的話數(shù)據(jù)源就不可用了,如果我們不能在jbuilder中啟動(dòng)項(xiàng)目,我門就不能在調(diào)試狀態(tài)下來運(yùn)行了,這樣對(duì)我們來寫程序就沒有太大意義了(當(dāng)然我們可以在外面啟動(dòng)tomcat,采用遠(yuǎn)程調(diào)試的方法,這樣即可以使用數(shù)據(jù)源,也可以調(diào)試修改程序,但這個(gè)有點(diǎn)殺雞用牛刀的意思,不推薦),實(shí)際上jbuilder在啟動(dòng)web項(xiàng)目時(shí)它會(huì)在工程目錄下建立一個(gè)tomcat文件架,它會(huì)去讀conf下的server8080.xml文件(8080為你為tomcat設(shè)定的端口),所以我們要想在jbuilder中啟動(dòng)數(shù)據(jù)源,必須要在該配置文件中加上數(shù)據(jù)源信息),具體的是將server8080.xml中的一條注釋刪掉,(否則它仍然會(huì)是臨時(shí)文件,會(huì)被覆蓋的)在<host>結(jié)點(diǎn)中加上
復(fù)制代碼 代碼如下:
<Resource name="jdbc/***" auth="Container"
type="javax.sql.DataSource" password="****"
driverClassName="com.microsoft.jdbc.sqlserver.SQLServerDriver"
maxIdle="2"
maxWait="5000"
username="sa"
url="jdbc:microsoft:sqlserver://192.168.*.*:1433;DatabaseName=***"
maxActive="4"/>
注意這里<context>結(jié)點(diǎn)可用它自身的,不要修改,重啟項(xiàng)目,這時(shí)你就可以使用數(shù)據(jù)源了。之所以在jbuilder中啟動(dòng)web項(xiàng)目有點(diǎn)麻煩,是它沒有把項(xiàng)目發(fā)布到tomcat的webapp下面去,而是把tomcat的一些東西拿過來了(相當(dāng)于),象eclispe或idea就沒有這種問題了。
以上所說的配置數(shù)據(jù)源是在tomcat5.5.9下實(shí)驗(yàn)的,估計(jì)5.5.x應(yīng)該都沒啥問題,要是別的tomcat的版本就不保了,誰(shuí)叫咱用的開源的東東了,版本的兼容就不能恭維了!
相關(guān)文章
業(yè)務(wù)系統(tǒng)的Prometheus實(shí)踐示例詳解
這篇文章主要為大家介紹了業(yè)務(wù)系統(tǒng)的Prometheus實(shí)踐示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04
Java之Error與Exception的區(qū)別案例詳解
這篇文章主要介紹了Java之Error與Exception的區(qū)別案例詳解,本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-09-09
IDEA導(dǎo)入geoserver項(xiàng)目的詳細(xì)步驟及注意事項(xiàng)
由于GeoServer是基于Java開發(fā)的。因此在安裝之前,必須確保安裝了Java。本文給大家分享IDEA導(dǎo)入geoserver項(xiàng)目的詳細(xì)步驟及注意事項(xiàng),感興趣的朋友一起看看吧2021-06-06
IDEA遠(yuǎn)程部署調(diào)試Java應(yīng)用程序的詳細(xì)流程
這篇文章主要介紹了IDEA遠(yuǎn)程部署調(diào)試Java應(yīng)用程序,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-10-10
idea使用easyCode生成代碼(根據(jù)mybatis-plus模板創(chuàng)建自己的模板)
本文主要介紹了idea使用easyCode生成代碼,easyCode代碼生成器可以減少低價(jià)值搬磚,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10

