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>