From: | Achilleas Mantzios <achill(at)matrix(dot)gatewaynet(dot)com> |
---|---|
To: | pgsql-jdbc(at)postgresql(dot)org |
Cc: | users(at)tomcat(dot)apache(dot)org |
Subject: | Tomcat7 connection pool with postgresql |
Date: | 2011-11-18 09:09:27 |
Message-ID: | 201111181109.28089.achill@matrix.gatewaynet.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
Hello,
although i have been a jboss/postgresql admin/dba for ages, it seems that i am stuck with tomcat.
i am trying in tomcat7 to set a connection pool'ed data source with postgresql.
i was following the tomcat7 docs here :
http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html#PostgreSQL
My server.xml portion looks as follows :
<GlobalNamingResources>
...
<Resource auth="Container" description="pgsql database for spring in action sia"
driverClassName="org.postgresql.Driver"
maxActive="20" maxIdle="10" maxWait="-1"
name="jdbc/postgres"
username="springuser" password="springuser"
type="javax.sql.DataSource"
url="jdbc:postgresql://localhost/sia"/>
</GlobalNamingResources>
my app's web.xml resource-ref goes as follows :
<resource-ref>
<description>postgreSQL Datasource sia</description>
<res-ref-name>jdbc/postgres</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
in my .jsp this code fails (ommiting boilerplate)
InitialContext ic = new InitialContext();
DataSource ds = (DataSource) ic.lookup( "java:/comp/env/jdbc/postgres" );
Connection con=null;
try {
con = ds.getConnection();
con.setAutoCommit(true);
}
catch () {...}
finally {...}
with :
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null'
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1452)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
org.apache.jsp.index_jsp._jspService(index_jsp.java:102)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause
java.sql.SQLException: No suitable driver
java.sql.DriverManager.getDriver(DriverManager.java:279)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1437)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
org.apache.jsp.index_jsp._jspService(index_jsp.java:102)
....
However if i do the classic standalone classloading :
Class.forName("org.postgresql.Driver");
String url = "jdbc:postgresql://localhost/sia?user=springuser&password=springuser";
con = DriverManager.getConnection(url);
it works ok.
To be honest, i haven't done any extensive reading on those matters, besides the official tomcat docs,
but time constraints are far too restrictive. Thank you all for your time!
PS users from the tomcat list, pls include my address since i am not subscribed in your list.
--
Achilleas Mantzios
From | Date | Subject | |
---|---|---|---|
Next Message | ml-tb | 2011-11-18 10:06:22 | Re: Tomcat7 connection pool with postgresql |
Previous Message | Johann 'Myrkraverk' Oskarsson | 2011-11-18 06:03:47 | Re: latest jdbc driver (9.1-901) in maven repository? |