Hello everybody,
I am trying to set up the configuration for a pool of connections to a
MySQL
DB and I get the following exception when deploying on Tomcat.
I followed the steps at
http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html
.
The application actually consists of a web service that performs a
query
to
the DB.
Any hints or suggestions? Thank you!
Context file
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/DB_WS" debug="5" reloadable="true"
crossContext="true">
<Resource name="jdbc/MySQL_cellmlrep" type="javax.sql.DataSource"
auth="Container"
user="root" password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/cellmlrep" maxActive="8"
maxIdle="4"/>
</Context>
Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="
http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<listener>
<listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>
<servlet>
<servlet-name>DBAccess</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet>
<servlet-name>DBAccessService</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DBAccess</servlet-name>
<url-pattern>/DBAccess</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>DBAccessService</servlet-name>
<url-pattern>/DBAccessService</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<resource-ref>
<description>
The database DataSource for the Acme web application.
</description>
<res-ref-name>jdbc/MySQL_cellmlrep</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
Exception
java.lang.ClassCastException:
org.apache.tomcat.dbcp.dbcp.BasicDataSource
cannot be cast to javax.naming.Context
at
org.apache.catalina.core.NamingContextListener.createSubcontexts(NamingContextListener.java:1203)
at
org.apache.catalina.core.NamingContextListener.addResource(NamingContextListener.java:1015)
at
org.apache.catalina.core.NamingContextListener.createNamingContext(NamingContextListener.java:633)
at
org.apache.catalina.core.NamingContextListener.lifecycleEvent(NamingContextListener.java:237)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at
org.apache.catalina.core.StandardContext.start(StandardContext.java:4252)
at
org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at
org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at
org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
at
org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:627)
at
org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:553)
at
org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:488)
at
org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
at
org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at
org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at
org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at
org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at
org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at
org.apache.catalina.core.StandardService.start(StandardService.java:516)
at
org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at
org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at
org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)