I'm trying to set up a JNDI connection to MySQL. I'm using the binary release 
of 4.1.11 with 4.0.4's jasper-compiler.jar and jasper-runtime.jar. I'm also 
using mysql-connector-java-2.0.14.

It's very similar to this thread 
http://www.mail-archive.com/tomcat-user@jakarta.apache.org/msg64346.html , 
however I still can't get mine working after reading that thread. I've 
basically followed (cut and paste) the JNDI Datasource HOWTO, 
http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jndi-datasource-examples-howto.html 
.

Here is the Context section of my server.xml

        <Context path="/jkw" 
                docBase="/usr/local/web/meta-htdocs/JWALSTRA/htdocs/jsp"
                debug="5" useNaming="true"
                reloadable="true" crossContext="true">

                <Logger className="org.apache.catalina.logger.FileLogger"
                        prefix="jkw_log." suffix=".txt"
                        timestamp="true"/>

                <Resource name="jdbc/JKW"
                        auth="Container"
                        type="javax.sql.DataSource"/>

                <ResourceParams name="jdbc/JKW">
                        <parameter>
                                <name>factory</name>
                                
<value>org.apache.commons.dbcp.BasicDataSourceFactory</value>
                        </parameter>

                        <!-- Maximum number of dB connections in pool. Make sure you
                                configure your mysqld max_connections large enough to 
handle
                                all of your db connections. Set to 0 for no limit.
                        -->
                        <parameter>
                                <name>maxActive</name>
                                <value>100</value>
                        </parameter>

                        <!-- Maximum number of idle dB connections to retain in pool.
                                Set to 0 for no limit.
                        -->
                        <parameter>
                                <name>maxIdle</name>
                                <value>30</value>
                        </parameter>

                        <!-- Maximum time to wait for a dB connection to become 
available
                                in ms, in this example 10 seconds. An Exception is 
thrown if
                                this timeout is exceeded.  Set to -1 to wait 
indefinitely.
                        -->
                        <parameter>
                                <name>maxWait</name>
                                <value>10000</value>
                        </parameter>

                        <!-- MySQL dB username and password for dB connections  -->
                        <parameter>
                                <name>username</name>
                                <value>nobody</value>
                        </parameter>
                        <parameter>
                                <name>password</name>
                                <value></value>
                        </parameter>

                        <!-- Class name for mm.mysql JDBC driver -->
                        <parameter>
                                <name>driverClassName</name>
                                <value>com.mysql.jdbc.Driver</value>
                        </parameter>

                        <!-- The JDBC connection url for connecting to your MySQL dB.
                                The autoReconnect=true argument to the url makes sure 
that the
                                mm.mysql JDBC Driver will automatically reconnect if 
mysqld closed the
                                connection.  mysqld by default closes idle connections 
after 8 hours.
                        -->

                        <parameter>
                                <name>url</name>
                                
<value>jdbc:mysql://localhost:3306/jkw?autoReconnect=true</value>
                        </parameter>
                </ResourceParams>
        </Context>

Here is my web.xml

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd";>

<web-app>

  <taglib>
    <taglib-uri>
      /orataglib
    </taglib-uri>
    <taglib-location>
      /WEB-INF/tlds/orataglib_1_0_3.tld
    </taglib-location>
  </taglib>

  <taglib>
    <taglib-uri>
      /jkw
    </taglib-uri>
    <taglib-location>
      /WEB-INF/tlds/jkw-1.0.tld
    </taglib-location>
  </taglib>

  <resource-ref>
    <description>MySQL DB Connection</description>
    <res-ref-name>jdbc/JKW</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>

</web-app>

My common/lib directory ... (jasper* is from 4.0.4)

-rw-r--r--    1 root     root        45386 Sep 19 08:30 activation.jar
-rw-r--r--    1 root     root       716139 Sep 19 08:30 ant.jar
-rw-r--r--    1 root     root        90503 Sep 19 08:30 
commons-collections.jar
-rw-r--r--    1 root     root        62998 Sep 19 08:30 commons-dbcp.jar
-rw-r--r--    1 root     root        16910 Sep 19 08:30 
commons-logging-api.jar
-rw-r--r--    1 root     root        28930 Sep 19 08:30 commons-pool.jar
-rw-r--r--    1 root     root       210191 Sep 22 21:40 jasper-compiler.jar
-rw-r--r--    1 root     root        67077 Sep 22 21:40 jasper-runtime.jar
-rw-r--r--    1 root     root        84854 Sep 19 08:30 jdbc2_0-stdext.jar
-rw-r--r--    1 root     root        98496 Sep 19 08:30 jndi.jar
-rw-r--r--    1 root     root         8674 Sep 19 08:30 jta.jar
-rw-r--r--    1 root     root       280984 Sep 19 08:30 mail.jar
-rw-r--r--    1 root     root       125961 Sep 22 21:27 
mysql-connector-java-2.0.14-bin.jar
-rw-r--r--    1 root     root        28664 Sep 19 08:30 naming-common.jar
-rw-r--r--    1 root     root        18222 Sep 19 08:30 naming-factory.jar
-rw-r--r--    1 root     root        37601 Sep 19 08:30 naming-resources.jar
-rw-r--r--    1 root     root        80054 Sep 19 08:30 servlet.jar

Here is my code sniplet ...

    Connection conn = null;
    Statement stmt = null;
    ResultSet rset = null;

    Context ctx = new InitialContext();
    if(ctx == null )
    {
      throw new Exception("Boom - No Context");
    }

    DataSource ds = (DataSource)ctx.lookup( "java:comp/env/jdbc/JKW");

    try
    {
      conn = ds.getConnection();
      stmt = conn.createStatement();

And the error message ...

java.sql.SQLException: Cannot load JDBC driver class 'null'
        at 
org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:529)
        at 
org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:312)
        at jkw.jsp.beans.SkillTypeBean.setTypeId(SkillTypeBean.java:42)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)


Any ideas?

Thanks,
John

-- 
John Walstra
[EMAIL PROTECTED]
[EMAIL PROTECTED]
[EMAIL PROTECTED]

Don't abandon hope.  Your Captain Midnight decoder ring arrives tomorrow.

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to