1. 程式人生 > >Cannot create PoolableConnectionFactory (Communications link failure The last packet sent successfu

Cannot create PoolableConnectionFactory (Communications link failure The last packet sent successfu

全部 rip iteye toolbar 登錄 技術分享 方案 onf 17.

SQL: Cannot create JDBC driver of class ‘‘ for connect URL

使用數據庫數據源的web 項目,發布後,訪問數據庫500報錯:

瀏覽器端:

技術分享圖片

控制臺:

技術分享圖片

數據庫連接池在不啟動Tomcat的情況下,測試類通過,沒有問題。

一旦在服務器發布,就會出現問題,考慮是Tomcat的連接池配置除了問題。

錯誤提示是:找不到jdbc驅動,但是提示信息裏的class值為null,所以,應該是Tomcat沒有找到驅動

1、檢查是否有jar包:存在,沒有問題。

2、檢查jar包位置:是在src 下。後來轉移到web下,還是沒效果。網上資料說:在tomcat6.0中設置jdbc數據源時,jdbc驅動要放在TOMCAT_HOME/lib目錄下,絕不能放在web-inf/lib/下面:否則tomcat就會報錯說找不到驅動。eclipse中的webcontent是虛擬路徑。

3、配置文件:缺失。

解決方案:

增加了配置文件:

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&amp;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>節點內,增加如下代碼

Xml代碼 技術分享圖片
  1. <Context path="/testApp" docBase="testApp" debug="1" reloadable="flase" crossContext="true">
  2. <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"/>
  3. </Context>

3.在tomcat目錄下的conf目錄下的Catalina目錄下的localhost目錄(如果你server.xml文件中HOST節點的name是localhost)下,增加testApp.xml文件。文件內容如下:

Xml代碼 技術分享圖片
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <Context antiResourceLocking="false" privileged="true" useHttpOnly="true" >
  3. <ResourceLink name="jdbc/devDS" global="jdbc/devDS" type="javax.sql.DataSource"/>
  4. </Context>

以上為tomcat的配置完成,下面為項目配置的修改。

4.修改項目目錄下的web.xml文件。增加jndi信息

Xml代碼 技術分享圖片
  1. <!-- 數據庫JNDI -->
  2. <resource-ref>
  3. <description>DB Connection</description>
  4. <res-ref-name>jdbc/devDS</res-ref-name>
  5. <res-type>javax.sql.DataSource</res-type>
  6. <res-auth>Container</res-auth>
  7. </resource-ref>

5.修改hibernate.cfg.xml信息(如果使用了hibernate)

Xml代碼 技術分享圖片
  1. <property name="connection.datasource">java:comp/env/jdbc/devDS</property>

到此,tomcat6的連接池配置信息全部完成。

再登錄項目,上面的那個錯誤就不再出現。

Cannot create PoolableConnectionFactory (Communications link failure The last packet sent successfu