I am trying to set up connection pooling to mysql databe with tomcat. My simple app is called Projekt, in my Projekt.xml in Apache/conf/Catalina/localhost I have
<Context docBase="Projekt.war" path="/Projekt"> <Resource name="jdbc/mysqldb" auth="Container" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" type="javax.sql.DataSource" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/Music" username="andrzej" password="qazxsw" maxActive="20" maxIdle="30" maxWait="5" /> </Context> web.xml of my app
<servlet> <servlet-name>HelloServlet</servlet-name> <servlet-class>org.jtp.HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloServlet</servlet-name> <url-pattern>/Hai</url-pattern> </servlet-mapping> <resource-ref> <description>DB Connection</description> <res-ref-name>jdbc/mysqldb</res-ref-name> <res-type>javax.sql.DataSource</res-type> <res-auth>Container</res-auth> </resource-ref> and in my Apache/lib folder I have
mysql-connector-java-5.1.18-bin.jar but when I execute this code:
Context initContext = new InitialContext(); dataSource = (DataSource)initContext.lookup("java:comp/env/jdbc/mysqldb"); System.out.println(dataSource.getConnection().createStatement(). execute("select * from Users")); I get exception
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create JDBC driver of class '' for connect URL 'null' I am puzzled now, in some places I read that it may be caused by not placing driver in tomcat/lib, but I have it and it works, because when I tested the driver with manual connections it worked.
For my setup I was trying to follow http://people.apache.org/~fhanik/jdbc-pool/jdbc-pool.html
EDIT: Finally got it working, it seemed that I had some left context tags in one of the files so when parsing he overriden other attributes, so it is all my fault at the end.