tomcat5.0和tomcat5.5配置問題,二者是有區別的

 

每個項目都會在數據庫上折騰一陣子,以前好搞定,因爲都在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_HOME/conf/Catalina/localhost裏的XXX.XML裏是這樣配置數據庫路徑的
<?xml version='1.0' encoding='utf-8'?>
<Context docBase="D:/eclipse/workspace/BKGMS" path="/BKGMS" reloadable="true" workDir="D:/eclipse/workspace/BKGMS/work/org/apache/jsp">
  <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:/eclipse/workspace/BKGMS" path="/BKGMS" reloadable="true" workDir="D:/eclipse/workspace/BKGMS/work/org/apache/jsp">
  <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.BasicDataSourceFactory"刪去,於是錯誤解決。

 當然不要忘記在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補丁 

 
發佈了83 篇原創文章 · 獲贊 0 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章