You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Vance Christiaanse <ci...@twcny.rr.com> on 2002/08/29 23:13:06 UTC
Tomcat 4.0 DataSources
Tomcat fans,
Here is some experimental data on trying to configure a DataSource with
Tomcat 4.0.4.
I don't have it working yet but have drawn the following conclusions:
(A) Putting the driver zip file on the catalina class path seems to make no
difference
(B) Putting the driver zip file renamed to be a jar file in common\lib seems
to produce UnsatisfiedLinkError
(C) Putting the jar file in lib at least allows the DataSource to be created
Hope this helps somebody!
Vance
========================================================================
CONFIGURATION RESULT
zip on jar in jar in Can create Can get
Catalina %CATALINA% %CATALINA% DataSource connection
classpath common\lib lib
NO NO NO NO [Error (1) N/A
driver class]
YES NO NO NO [Error (1) N/A
driver class]
NO YES NO NO [Error (2) N/A
UnsatisfiedLinkError]
YES YES NO NO [Error (2) N/A
UnsatisfiedLinkError]
NO YES YES NO [Error (2) N/A
UnsatisfiedLinkError]
NO NO YES YES!!!! NO [Error (3)
driver class]
YES NO YES YES!!!! NO [Error (3)
driver class]
(1) javax.naming.NamingException: Exception creating DataSource:
COM.ibm.db2.jdbc.app.DB2Driver
(2) javax.naming.NamingException: Exception creating DataSource:
java.lang.UnsatisfiedLinkError: no db2jdbc in java.library.path
(3) DataSource: Failed to load JDBC driver: COM/ibm/db2/jdbc/app/DB2Driver
DataSource: Failed to initialize JDBC driver: java.sql.SQLException: No
suitable driver
java.sql.SQLException: No suitable driver
----- Original Message -----
From: <st...@teamics.com>
To: "Tomcat Users List" <to...@jakarta.apache.org>
Sent: Thursday, August 29, 2002 2:03 PM
Subject: Re: Trouble configuring Tomcat 4.0.4 JNDI connection to MySQL
>
> Vance,
>
> Good eye. It use to be driverName but got changed along the way to URL.
> Probably when I started following the 4.1 how-to. In any case, I changed
> back to driverName and, alas, same problem.
>
> Vance, do you get the same error?
>
> javax.naming.NamingException: Exception creating DataSource:
> org.hsql.jdbcDriver
> at org.apache.naming.NamingContext.lookup(NamingContext.java:842)
> at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
> at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
> at org.apache.naming.NamingContext.lookup(NamingContext.java:194)
> at foo.DBTest1.init(DBTest1.java:20)
> at org.apache.jsp.DbTest1$jsp._jspService(DbTest1$jsp.java:60)
>
>
>
>
>
> "Vance
> Christiaanse"
> <cintech@twcny.rr. To
> com> "Tomcat Users List"
> <to...@jakarta.apache.org>
> 08/29/2002 11:16 cc
> AM
> Subject
> Re: Trouble configuring Tomcat 4.0.4
> Please respond to JNDI connection to MySQL
> "Tomcat Users
> List"
> <tomcat-user@jakar
> ta.apache.org>
>
>
>
>
>
>
> Steve,
>
> I'm stuck in a similar situation. Here's one thing I noticed about your
> server.xml file:
>
> The 4.1 JNDI How-to uses a parameter name of "url" for the URL but the 4.0
> JNDI How-to uses a parameter name of "driverName" for the URL.
>
> Your server.xml file is using "url" for the parameter name but you're
> trying
> to use 4.0.
>
> I don't know if this is significant or not.
>
> Vance
>
> ----- Original Message -----
> From: <st...@teamics.com>
> To: "Tomcat Users List" <to...@jakarta.apache.org>
> Sent: Thursday, August 29, 2002 10:31 AM
> Subject: Trouble configuring Tomcat 4.0.4 JNDI connection to MySQL
>
>
> > After reading something in another post this morning I realized I was
> > mixing instructions from the 4.1 JNDI How-to. I've reposted this
message
> > with updated information after making sure I was ONLY following the 4.0
> > JNDI How to.
> >
> > I have deleted my server.xml and started with a fresh copy. First, I
> made
> > sure I could connect to MySQL with a regular JDBC connection. Next, I
> > added a JDBC Realm using MySQL. That works fine. Finally, I added a
> JDBC
> > resource and tried to use it. That is when I get the error below.
> >
> > The error I have, and have always had, even before the 4.1 detour, is
the
> > following:
> >
> > javax.naming.NamingException: Exception creating DataSource:
> > org.hsql.jdbcDriver
> > at org.apache.naming.NamingContext.lookup(NamingContext.java:842)
> > at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
> > at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
> > at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
> > at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
> > at org.apache.naming.NamingContext.lookup(NamingContext.java:181)
> > at org.apache.naming.NamingContext.lookup(NamingContext.java:822)
> > at org.apache.naming.NamingContext.lookup(NamingContext.java:194)
> > at
> org.apache.naming.SelectorContext.lookup(SelectorContext.java:183)
> > at javax.naming.InitialContext.lookup(InitialContext.java:351)
> > at foo.DBTest1.init(DBTest1.java:19)
> > at org.apache.jsp.DbTest1$jsp._jspService(DbTest1$jsp.java:60)
> >
> > Why would Tomcat be looking for a Hypersonic SQL driver? I took a shot
> and
> > copied Hypersonic 1.61 hsqldb.jar to /common/lib, but when it had no
> effect
> > I removed it.
> >
> > I'm currently running
> > Windows 2000
> > J2SE 1.4.0
> > J2SE 1.3.1
> > Tomcat 4.04
> > MySQL 4.0.2-Alpha
> > MySQL Connector 2.0.14. (I copied mysql-connector-java-2.0.14-bin.jar to
> > $TOMCAT_HOME/common/lib,)
> >
> > I get the same error no matter what code I run. For example, Both code
> > blocks below result in the same error:
> > Context ctx = new InitialContext();
> > ctx.addToEnvironment(Context.INITIAL_CONTEXT_FACTORY,
> > "com.sun.jndi.fscontext.RefFSContextFactory");
> > Connection conn = ds.getConnection();
> > if(ctx == null )
> > throw new Exception("Boom - No Context");
> > DataSource ds = (DataSource)ctx.lookup(
> > "java:comp/env/jdbc/TestDB"); <-- Blows up here
> > --- AND ---
> > Context initCtx = new InitialContext();
> > Context envCtx = (Context) initCtx.lookup("java:comp/env");
> > if(envCtx == null )
> > throw new Exception("Boom - No Context");
> > DataSource ds =
> > (DataSource)envCtx.lookup("jdbc/TestDB"); <--- Blows up here
> >
> > I added the following to the web.xml file:
> > <resource-ref id="ResourceRef_TestDB">
> > <description>DB Connection</description>
> > <res-ref-name>jdbc/TestDB</res-ref-name>
> > <res-type>javax.sql.DataSource</res-type>
> > <res-auth>Container</res-auth>
> > </resource-ref>
> >
> > Here is my server.xml file:
> >
> > <Server port="8005" shutdown="SHUTDOWN" debug="0">
> > <Service name="Tomcat-Standalone">
> > <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
> > <Connector
> className="org.apache.catalina.connector.http.HttpConnector"
> > port="8080" minProcessors="5" maxProcessors="75"
> > enableLookups="true" redirectPort="8443"
> > acceptCount="10" debug="0" connectionTimeout="60000"/>
> > <!-- Define the top level container in our container hierarchy -->
> > <Engine name="Standalone" defaultHost="localhost" debug="0">
> > <!-- Global logger unless overridden at lower levels -->
> > <Logger className="org.apache.catalina.logger.FileLogger"
> > prefix="catalina_log." suffix=".txt"
> > timestamp="true"/>
> > <Realm className="org.apache.catalina.realm.JDBCRealm" debug="99"
> > driverName="org.gjt.mm.mysql.Driver"
> > connectionURL
> > ="jdbc:mysql://localhost/authority?user=javauser;password=javadude"
> > userTable="users" userNameCol="user_name" userCredCol
> > ="user_pass"
> > userRoleTable="user_roles" roleNameCol="role_name" />
> > <!-- Define the default virtual host -->
> > <Host name="localhost" debug="0" appBase="webapps"
> unpackWARs="true">
> > <Valve className="org.apache.catalina.valves.AccessLogValve"
> > directory="logs" prefix="localhost_access_log." suffix
> > =".txt"
> > pattern="common"/>
> > <Logger className="org.apache.catalina.logger.FileLogger"
> > directory="logs" prefix="localhost_log." suffix=".txt"
> > timestamp="true"/>
> > <!-- Tomcat Root Context -->
> > <!--> <Context path="" docBase="ROOT" debug="0"/>
> > -->
> >
> > <!-- Tomcat Manager Context -->
> > <Context path="/manager" docBase="manager"
> > debug="0" privileged="true"/>
> >
> > <!-- Security Test -->
> > <Context path="/stewart" docBase="stewart" debug="0"
> > reloadable="true" crossContext="true">
> > <Logger className="org.apache.catalina.logger.FileLogger"
> > prefix="localhost_examples_log." suffix=".txt"
> > timestamp="true"/>
> > <Manager className
> > ="org.apache.catalina.session.PersistentManager"
> > debug="0"
> > saveOnRestart="true"
> > maxActiveSessions="-1"
> > minIdleSwap="-1"
> > maxIdleSwap="-1"
> > maxIdleBackup="-1">
> > <Store className
> ="org.apache.catalina.session.FileStore"/>
> > </Manager>
> > </Context>
> > <!-- Test JDBC to MySql -->
> > <Context path="/DBTest" docBase="DBTest"
> > debug="5" reloadable="true" crossContext="true">
> >
> > <Logger className="org.apache.catalina.logger.FileLogger"
> > prefix="localhost_DBTest_log." suffix=".txt"
> > timestamp="true"/>
> >
> > <Resource name="jdbc/TestDB"
> > auth="Container"
> > type="javax.sql.DataSource"/>
> > <ResourceParams name="jdbc/TestDB">
> > <parameter>
> > <name>factory</name>
> >
> > <value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
> > </parameter>
> > <parameter>
> > <name>maxActive</name>
> > <value>100</value>
> > </parameter>
> > <parameter>
> > <name>maxIdle</name>
> > <value>30000</value>
> > </parameter>
> > <parameter>
> > <name>maxWait</name>
> > <value>100</value>
> > </parameter>
> > <parameter>
> > <name>username</name>
> > <value>javauser</value>
> > </parameter>
> > <parameter>
> > <name>password</name>
> > <value>javadude</value>
> > </parameter>
> >
> > <parameter>
> > <name>driverClassName</name>
> > <value>org.gjt.mm.mysql.Driver</value>
> > </parameter>
> >
> > <parameter>
> > <name>url</name>
> > <value>jdbc:mysql://localhost:3306/javatest</value>
> > </parameter>
> > </ResourceParams>
> > </Context>
> > </Host>
> >
> > </Engine>
> >
> > </Service>
> >
> > <!-- Define an Apache-Connector Service -->
> > <Service name="Tomcat-Apache">
> >
> > <Connector
> className="org.apache.catalina.connector.warp.WarpConnector"
> > port="8008" minProcessors="5" maxProcessors="75"
> > enableLookups="true"
> > acceptCount="10" debug="0"/>
> >
> > <!-- Replace "localhost" with what your Apache "ServerName" is set
to
> > -->
> > <Engine className="org.apache.catalina.connector.warp.WarpEngine"
> > name="Apache" defaultHost="localhost" debug="0" appBase="webapps">
> >
> > <!-- Global logger unless overridden at lower levels -->
> > <Logger className="org.apache.catalina.logger.FileLogger"
> > prefix="apache_log." suffix=".txt"
> > timestamp="true"/>
> >
> > <!-- Because this Realm is here, an instance will be shared
> globally> -->
> > <Realm className="org.apache.catalina.realm.MemoryRealm" />
> >
> > </Engine>
> >
> > </Service>
> >
> > </Server>
> >
> > Any ideas?
> >
> > Steve Mitchell
> > e-Business Architect/Developer
> > Integrated Corporate Solutions, Inc.
> > 913-685-6506
> > stevem@teamics.com
> >
> >
> >
> > --
> > To unsubscribe, e-mail:
> <ma...@jakarta.apache.org>
> > For additional commands, e-mail:
> <ma...@jakarta.apache.org>
> >
> >
>
>
> --
> To unsubscribe, e-mail: <
> mailto:tomcat-user-unsubscribe@jakarta.apache.org>
> For additional commands, e-mail: <
> mailto:tomcat-user-help@jakarta.apache.org>
>
>
>
>
>
> --
> To unsubscribe, e-mail:
<ma...@jakarta.apache.org>
> For additional commands, e-mail:
<ma...@jakarta.apache.org>
>
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>