其實tomcat中配置資料來源有好幾中方式,很靈活,所以也容易相互整竄,個人認為比較簡單的方法就是在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,所以資料來源的配置資訊採用屬性的形式寫,不能用結點的形式,tomcat5.0.X好象可以。
改了tomcat的server.xml檔案後,剩下一個要改的地方就是在你的web項目中的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>
僅僅需要改這兩個地方就能在web程式中使用tomcat提供的資料來源,但這樣做,你可以將你產生的war包放在容器下運行,卻不能在jbuilder中啟動項目,因為jbuilder啟動web項目時是不會去讀你指定的tomcat中的server.xml的,這樣的話資料來源就不可用了,如果我們不能在jbuilder中啟動項目,我門就不能在調試狀態下來運行了,這樣對我們來寫程式就沒有太大意義了(當然我們可以在外面啟動tomcat,採用遠端偵錯的方法,這樣即可以使用資料來源,也可以調試修改程式,但這個有點殺雞用牛刀的意思,不推薦),實際上jbuilder在啟動web項目時它會在工程目錄下建立一個tomcat檔案架,它會去讀conf下的server8080.xml檔案(8080為你為tomcat設定的連接埠),所以我們要想在jbuilder中啟動資料來源,必須要在該設定檔中加上資料來源資訊),具體的是將server8080.xml中的一條注釋刪掉,(否則它仍然會是臨時檔案,會被覆蓋的)在<host>結點中加上 複製代碼 代碼如下:<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>結點可用它自身的,不要修改,重啟項目,這時你就可以使用資料來源了。之所以在jbuilder中啟動web項目有點麻煩,是它沒有把項目發布到tomcat的webapp下面去,而是把tomcat的一些東西拿過來了(相當於),象eclispe或idea就沒有這種問題了。
以上所說的配置資料來源是在tomcat5.5.9下實驗的,估計5.5.x應該都沒啥問題,要是別的tomcat的版本就不保了,誰叫咱用的開源的東東了,版本的相容就不能恭維了!