Cannot create PoolableConnectionFactory (Communications link failure The last packet sent successfu
使用數據庫數據源的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&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代碼- <?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信息
Xml代碼- <!-- 數據庫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)
Xml代碼
- <property name="connection.datasource">java:comp/env/jdbc/devDS</property>
到此,tomcat6的連接池配置信息全部完成。
再登錄項目,上面的那個錯誤就不再出現。
Cannot create PoolableConnectionFactory (Communications link failure The last packet sent successfu