2012-04-25 199 views
1

我在tomcat7上實現連接池時遇到問題。 由於某種原因,tomcat試圖連接我的機器用戶名。我已經googlin了一段時間,但沒有運氣。Tomcat上的連接池7

org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory 
(FATAL: role "caspinol" does not exist) 
Cant connect to db 
Log In failed: An Exception has occurred! java.lang.NullPointerException 
java.lang.NullPointerException 
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createPoolableConnectionFactory(BasicDataSource.java:1549)... 

我的context.xml如下所示:

<Resource auth="Container" name="jdbc/postgres" type="javax.sql.DataSource" user="biller" password="biller" 
      driverClassName="org.postgresql.Driver" url="jdbc:postgresql://localhost:5432" maxActive="150" 
      schema="biller" maxIdle="4"/> 

而且在web.xml:

<resource-ref> 
    <description>postgreSQL Datasource</description> 
    <res-ref-name>jdbc/postgres</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>Container</res-auth> 
</resource-ref> 

我使用jdbc4.jar Postgres的驅動程序。 我很感激,如果有人可以看看,並指出什麼是錯誤提前

感謝

+0

username =「biller」而不是user =「biller」? – 2012-04-25 16:44:04

+1

非常感謝。這解決了第一個問題......奇怪的是,這個配置實際上來自「Tomcat - 權威指南」。謹防這些書... :) – SneakyMummin 2012-04-26 08:55:33

回答

0

的URL似乎是錯誤的。 試試這個網址:

jdbc:postgresql://localhost:5432/<db_name> 

與實際的數據庫名稱替換<db_name>

+0

而這解決了其他:) – SneakyMummin 2012-04-26 08:55:53

0

這不是這個問題的正確解決方案,但會幫助有人用正確的連接字符串搜索相同的問題。

檢查您的網絡連接訪問: 像連接字符串

jdbc:postgresql://[::1]:5432/<db_name> 

使用IPv6, 這會破壞其他類似的連接訪問來自應用程序,只能通過IPv4的可用WSDL的URL。 請注意網絡連接,特別是Windows 8。