每個專案都會在資料庫上折騰一陣子,以前好搞定,因為都在TOMCAT5.0的基礎上搞,不管是配ORCALE SQLSERVER2000還是MYSQL搞了N長時間已經習慣了.但是重來沒有奢望過用TOMCAT5 .5弄這些,我所習慣的使用TOMCAT5.5僅在proxool.xml這種配置方式下使用.但是我一直相信TOMCAT5.5一定能在所有方式下使用.因為配置僅僅是種方式.
昨天弄了一天,最後使用資料庫時報了Cannot create JDBC driver of class '' for connect URL 'null'這樣的錯.以為和以前一樣一定是哪個地方配置文件寫錯,結果查了半天沒有半個單字寫錯上網查了查,原來好多兄弟和我一樣都遇到過.按照某兄弟的寫法試了下沒有成功咱們在TOMCAT5.0時期在TOMCAT_HOMEconfCatalinalocalhost裡的XXX.XML裡是這樣配置資料庫路徑的
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="D:eclipseworkspaceBKGMS" path="/BKGMS" reloadable="true" workDir="D:eclipseworkspaceBKGMSworkorgapachejsp">
<Resource auth="Container" name="RedstoneSql" type="javax.sql.DataSource"/>
<ResourceParams name="better">
<parameter>
<name>factory</name>
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
</parameter>
<parameter>
<name>url</name>
<value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=bkgms</value>
</parameter>
<parameter>
<name>password</name>
<value>sa</value>
</parameter>
<parameter>
<name>maxWait</name>
<value>10000</value>
</parameter>
<parameter>
<name>maxActive</name>
<value>100</value>
</parameter>
<parameter>
<name>driverClassName</name>
<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>
</parameter>
<parameter>
<name>username</name>
<value>sa</value>
</parameter>
<parameter>
<name>maxIdle</name>
<value>30</value>
</parameter>
</ResourceParams>
</Context>
依某兄弟的寫法在<Resource auth="Container" name="better" type="javax.sql.DataSource"/>之前加上<ResourceLink global="better" name="better" type="javax.sql .DataSource"/>即可搞定但是重起TOMCAT後報unable to get connection :no suitable driver
我靠,我想這是不靈的,再查.大多數兄弟都說了,TOMCAT5.5和TOMCAT5.0配置不同自Tomcat5.5以後,<context>元素的<Resoucepram>元素取消,原參數元素都以Resouce的屬性出現.
而應該這樣寫,順便把<ResourceLink >也加進去
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="D:eclipseworkspaceBKGMS" path="/BKGMS" reloadable="true" workDir="D:eclipseworkspaceBKGMSworkorgapachejsp">
<Resource auth="Container" name="better" type="javax.sql.DataSource" maxWait="10000" maxIdle="30" maxActive="100" username="sa" password="sa" driverClassName="com .microsoft.jdbc.sqlserver.SQLServerDriver" url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=bkgms"/>
<ResourceLink global="better" name="better" type="javax.sql.DataSource"/>
</Context>
解釋一下:1.path是指定存取該web應用的URL入口;
2.docBase指定web應用的檔案路徑,可以是絕對路徑,也可以是相對於Host的appBase屬性的相對路徑;
3.type
4.maxActive
是DBCP中處於活動狀態的資料庫連線的最大數目,取0表示不受限制5.maxIdle是DBCP中
處於空閒狀態的資料庫連線的最大數目,取0表示不受限制
6.maxWait是是DBCP中的資料庫連線處於空閒狀態的最長時間(以毫秒為單位)取0表示無限期等待
7.username是資料庫登陸名
8.password是資料庫登陸口令
9.driverClassName是只定資料庫的jdbc驅動程式
10.url是指定連接資料庫的URL,testDBCP是我的資料庫名稱。
報unable to get connection :no suitable driver
是從eclipse中啟動tomcat,發現啟動時找不到org.apache.commons.dbcp.BasicDataSourceFactory,於是把Resouce元素中的factory="org.apache.commons.dbcp.BasicDataSourceResoFactory "刪去,於是錯誤解決。
當然不要忘記在web.xml中加
<resource-ref>
<description>DB Connection</description>
<res-ref-name>better</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
不過如果使用SQLSERVER2000 也要確保打了SP4補丁