Hi,
I encounter a problem regarding setting up a JNDI Datasource at Tomcat
with PostgreSQL under Linux Suse 10.3 environment. This is the
exception.
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC
driver of class '' for connect URL 'null'
I wonder if there are some additional settings that I may have
forgotten.
Would you give me a hand here?
Stanley
Here is what I do:
0) Ensure the postgreSQL.jar is stored inside the tomcat/lib
1) Create a context.xml in the META-INF. The context.xml defines the
context below:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/someApp" docBase="someApp"
crossContext="true" reloadable="true" debug="1">
<Resource name="jdbc/postgres" auth="Container"
type="javax.sql.DataSource"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://127.0.0.1:5432/testdb"
username="gepguser" password="password" maxActive="20"
maxIdle="10"
maxWait="-1"/>
</Context>
Where testdb is the database inside PostgreSQL.
2) Add the following entry in web.xml:
<resource-ref>
<description>postgreSQL Datasource example</description>
<res-ref-name>jdbc/postgres</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
3) Use the following code to get the connection:
public Connection getConnection() {
Connection conn = null;
Context initCtx;
try {
initCtx = new InitialContext();
DataSource ds = (DataSource) initCtx
.lookup("java:comp/env/jdbc/postgres");
conn = ds.getConnection();
} catch (NamingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}