I'm trying to set up a JDBC DataSource in Tomcat 7 under Ubuntu 12.X, so I added the following to the context.xml file:
<Resource name="jdbc/myDS" auth="Container" type="javax.sql.DataSource"
maxActive="5" maxIdle="2" maxWait="5000"
driverClassName="org.postgresql.Driver" username="usr" password="***" url="jdbc:postgresql://localhost:5432/db" />
Obviously, using the right and tested database user id and password. When I restart Tomcat, I get the this error:
Feb 05, 2013 1:10:01 PM org.apache.catalina.core.NamingContextListener addResource
WARNING: Failed to register in JMX: javax.naming.NamingException: Could not create resource factory instance [Root exception is java.lang.ClassNotFoundException: org.apache.tomcat.dbcp.dbcp.BasicDataSourceFactory]
I googled, and found out the JDBC driver has to be copied to the $CATALINA_HOME/lib folder, so I copied the postgresql-9.2-1000.jdbc4.jar to /usr/share/tomcat7/lib, but it didn't help. I tried copying the file to other locations, with the same results.
Another attempt was to change the tomcat-dbcp.jar symlink in /usr/share/tomcat7/lib from ../../java/tomcat-dbcp-7.0.30.jar to ../../java/tomcat-dbcp.jar. The only change was I got only one warning instead of four, but the datasource doesn't work either.
Java version:
jdoe@sever:~$ java -version
java version "1.7.0_09"
OpenJDK Runtime Environment (IcedTea7 2.3.4) (7u9-2.3.4-0ubuntu1.12.10.1)
OpenJDK 64-Bit Server VM (build 23.2-b09, mixed mode)
Any hint, very welcomed.
Cheers.
The library tomcat-dbcp-7.0.30.jar
from repositories is corrupted.
Replace it with:
sudo wget -O /usr/share/java/tomcat-dbcp-7.0.30.jar http://search.maven.org/remotecontent?filepath=org/apache/tomcat/tomcat-dbcp/7.0.30/tomcat-dbcp-7.0.30.jar