It works if I use org.apache.tomcat.dbcp.dbcp.BasicDataSource.
 I've tried adding all the commons jars to common/lib and it still doesn't 
work with org.apache.commons.dbcp.BasicDataSource. How do you get it to cast 
with your own resource factory? The way I see it, it should be the same 
thing if you're extending from org.apache.commons.dbcp.BasicDataSource.
 Just FYI...Here's what I have in commons/lib:
 commons-collections-3.1.jar* log4j.jar*
commons-dbcp-1.2.1.jar* mysql-connector-java-3.1.7-bin.jar*
commons-pool-1.2.jar* naming-factory-dbcp.jar*
jasper-compiler-jdt.jar* naming-factory.jar*
jasper-compiler.jar* naming-resources.jar*
jasper-runtime.jar* servlet-api.jar*
jsp-api.jar*

 On 5/9/05, Pfingstl Gernot <[EMAIL PROTECTED]> wrote: 
> 
> You can find org.apache.tomcat.dbcp.dbcp.BasicDataSource in 
> common/lib/naming-factory-dbcp.jar.
> If you put commons-dbcp.jar, commons-pool.jar and commons-collections.jarin 
> common/lib you (maybe) should be able to use 
> org.apache.commons.dbcp.BasicDataSource.
> I do it in a similar way - I have my own ressource factory, which extends 
> org.apache.commons.dbcp.BasicDataSourceFactory and it works in tomcat 5.5with 
> the above jars.
> 
> Gernot
> 
> -----Ursprüngliche Nachricht-----
> Von: Dhiren Bhatia [mailto:[EMAIL PROTECTED]
> Gesendet: Montag, 09. Mai 2005 18:47
> An: Tomcat Users List
> Betreff: Re: DBCP ClassCastException
> 
> I'm using BasicDataSource because javax.sql.DataSource does not have 
> methods
> to set the driver class name, url, username/pwd etc. My app needs to 
> support
> different databases and the driver is loaded based on which database is
> installed.
> If I use org.apache.tomcat.dbcp.dbcp.BasicDataSource, then my code is not
> portable to JBoss/Weblogic etc right? BTW, which jar is
> org.apache.tomcat.dbcp.dbcp.BasicDataSource in?
> Thanks for your response.
> Dhiren
> 
> On 5/9/05, Pfingstl Gernot <[EMAIL PROTECTED]> wrote:
> >
> > Tomcat 5.5 doesn't use commons-dbcp directly, the tomcat team took the
> > source and put it in other packages.
> > So you should use org.apache.tomcat.dbcp.dbcp.BasicDataSource instead of
> > org.apache.commons.dbcp.BasicDataSource in your source - btw why do you
> > cast to BasicDataSource, you can use javax.sql.DataSource?
> >
> > Gernot
> >
> > -----Ursprüngliche Nachricht-----
> > Von: Dhiren Bhatia [mailto:[EMAIL PROTECTED]
> > Gesendet: Montag, 09. Mai 2005 17:19
> > An: Tomcat Users List
> > Betreff: Re: DBCP ClassCastException
> >
> >
> > Hi Lutz,
> > I changed the Resource tag definition to:
> > <Resource name="jdbc/myserver" auth="Container" type="
> javax.sql.DataSource
> > "
> > maxActive="100" maxIdle="30" maxWait="10000"
> > driverClassName="com.mysql.jdbc.Driver"/>
> > I'm setting the username/password and jdbcurl using code.
> > I still get the same ClassCastException. Is Tomcat instantiating the
> > correct DataSourceFactory?
> > I have the commons-dbcp-1.2.1.jar in my ${TOMCAT_HOME}/common/lib
> > Thanks,
> > Dhiren
> >
> > On 5/8/05, Lutz Zetzsche <[EMAIL PROTECTED]> wrote:
> > >
> > > Hi Dhiren,
> > >
> > > Am Montag, 9. Mai 2005 07:36 schrieb Dhiren Bhatia:
> > > > Hi all,
> > > >
> > > > I'm getting a the following ClassCastException running Tomcat 5.5.9
> > > > with MySQL
> > > >
> > > > java.lang.ClassCastException:
> > > > org.apache.tomcat.dbcp.dbcp.BasicDataSource
> > > >
> > > > Here's the relevant code:
> > > > *Java code:*
> > > > org.apache.commons.dbcp.BasicDataSource datasource;
> > > >
> > > > datasource =
> > > > (BasicDataSource)ctx.lookup("java:comp/env/jdbc/myserver");
> > > >
> > > > *web.xml*
> > > > <resource-ref>
> > > > <description>DB Connection</description>
> > > > <res-ref-name>jdbc/myserver</res-ref-name>
> > > > <res-type>javax.sql.DataSource</res-type>
> > > > <res-auth>Container</res-auth>
> > > > </resource-ref>
> > > > *server.xml*
> > > > *....*
> > > > <ResourceParams name="jdbc/myserver">
> > > > <parameter>
> > > > <name>factory</name>
> > > > <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
> > > > </parameter>
> > > > *...*
> > > >
> > > >
> > > > This same code works in Tomcat 5.0.30.
> > > >
> > > > Has anything changed? Am I missing something?
> > >
> > > Yes. The syntax for the Resource tag in the server.xml has changed. 
> The
> > > resource parameters are no longer defined in tags nested into the
> > > Resource tag, but in attributes of the tag. This is an example from 
> the
> > > Tomcat 5.5 documentation:
> > >
> > > <Resource name="jdbc/TestDB" auth="Container"
> > > type="javax.sql.DataSource" maxActive="100" maxIdle="30"
> > > maxWait="10000" username="javauser" password="javadude"
> > > driverClassName="com.mysql.jdbc.Driver"
> > > url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"/>
> > >
> > >
> > >
> > 
> http://jakarta.apache.org/tomcat/tomcat-5.5-doc/jndi-datasource-examples-howto.html
> > >
> > > Best wishes,
> > >
> > > Lutz
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
>

Reply via email to