使用數據庫數據源的web 項目,發佈後,訪問數據庫500報錯:html
瀏覽器端:java
控制檯:mysql
數據庫鏈接池在不啓動Tomcat的狀況下,測試類經過,沒有問題。web
一旦在服務器發佈,就會出現問題,考慮是Tomcat的鏈接池配置除了問題。sql
錯誤提示是:找不到jdbc驅動,可是提示信息裏的class值爲null,因此,應該是Tomcat沒有找到驅動數據庫
一、檢查是否有jar包:存在,沒有問題。瀏覽器
二、檢查jar包位置:是在src 下。後來轉移到web下,仍是沒效果。網上資料說:在tomcat6.0中設置jdbc數據源時,jdbc驅動要放在TOMCAT_HOME/lib目錄下,毫不能放在web-inf/lib/下面:不然tomcat就會報錯說找不到驅動。eclipse中的webcontent是虛擬路徑。tomcat
三、配置文件:缺失。服務器
解決方案:oracle
增長了配置文件:
content.xml
1 <Context> 2 <Resource 3 auth="Container" 4 driverClassName="com.mysql.jdbc.Driver" 5 maxActive="100" 6 maxIdle="40" 7 maxWait="4000" 8 name="jdbc/fish" 9 username="root" 10 password="root" 11 type="javax.sql.DataSource" 12 url="jdbc:mysql://localhost:3306/fish?useUnicode=true&characterEncoding=UTF-8" 13 /> 14 </Context>
運行成功。
轉載 關於Tomcat6 的數據源配置:
tomcat6.0 數據庫鏈接池配置問題:
鏈接池配好後,啓動tomat後,輸入項目系統的登陸名和密碼,報
Cannot create JDBC driver of class '' for connect URL 'null' 錯誤。
經檢查,發現是鏈接池沒有配好。
現把鏈接池配置步驟從新整理一遍。(以ORACLE爲例)
1.在tomcat的lib目錄下放入數據庫驅動。ORACLE的驅動爲ojdbc14.jar。
2.修改tomcat目錄下的conf目錄下的server.xml文件。
在<Host></Host>節點內,增長以下代碼
- <Context path="/testApp" docBase="testApp" debug="1" reloadable="flase" crossContext="true">
- <Resource name="jdbc/devDS" type="javax.sql.DataSource" password="shxt" driverClassName="oracle.jdbc.driver.OracleDriver" maxIdle="2" maxWait="5000" username="shxt" url="jdbc:oracle:thin:@192.168.0.133:1521:testApp" maxActive="100"/>
- </Context>
3.在tomcat目錄下的conf目錄下的Catalina目錄下的localhost目錄(若是你server.xml文件中HOST節點的name是localhost)下,增長testApp.xml文件。文件內容以下:
- <?xml version="1.0" encoding="UTF-8"?>
- <Context antiResourceLocking="false" privileged="true" useHttpOnly="true" >
- <ResourceLink name="jdbc/devDS" global="jdbc/devDS" type="javax.sql.DataSource"/>
- </Context>
以上爲tomcat的配置完成,下面爲項目配置的修改。
4.修改項目目錄下的web.xml文件。增長jndi信息
- <!-- 數據庫JNDI -->
- <resource-ref>
- <description>DB Connection</description>
- <res-ref-name>jdbc/devDS</res-ref-name>
- <res-type>javax.sql.DataSource</res-type>
- <res-auth>Container</res-auth>
- </resource-ref>
5.修改hibernate.cfg.xml信息(若是使用了hibernate)
- <property name="connection.datasource">java:comp/env/jdbc/devDS</property>
到此,tomcat6的鏈接池配置信息所有完成。
再登陸項目,上面的那個錯誤就再也不出現。