What version of tomcat are you using?  What follows is based on using
version 5.0.x.  The syntax for configuring JDBC resources in 5.5 is a
little different.

Of  course I am using 5.5. Thats' what I get for not providing that to start
with. So what you gave me below needs to be modified HOW?
Because I am now getting -
Results
Foo Not Connected
Bar -1



Wayne


----- Original Message ----- From: "Wayne Bragg" <[EMAIL PROTECTED]>
To: "Tomcat Users List" <users@tomcat.apache.org>
Sent: Monday, March 05, 2007 11:32 AM
Subject: Re: install DBCP and mm.mysql 2.0.14 (JDBC Driver) and test app, get class compile error.


Thank you David,

I was suspicious about the .java needing to be compiled and the commons-dbcp.jar and commons-pool.jar being unnecessary. What about commons-collections-3.2.jar is that necessary or does commons-el.jar have what is needed? Commons-el.jar is all that was in there to start with. You've given me enough to go on to fix this and make this work. I thank you again..

Do you think it's better to allow Tomcat to handle the MySql or have PHP and MySql handled by httpd and pass the java related calls on to Tomcat? I just finished reading an article that explains how to set it up this second way and have to admit it would be better for me in the SHORT run as I have pre-existing code that wouldn't require rewriting other than adding NEW java code which is the reason I'm doing this in the first place.

Also 97 and Visual J but it doesn't appear to be able to save .class files. It looks like it just puts the class code into the .exe at compile time. I also installed just installed MS Visual Web Developer Express, do you know if this will compile and save a .class file?

Thanks for the help..



----- Original Message ----- From: "David Smith" <[EMAIL PROTECTED]>
To: "Tomcat Users List" <users@tomcat.apache.org>
Sent: Monday, March 05, 2007 7:06 AM
Subject: Re: install DBCP and mm.mysql 2.0.14 (JDBC Driver) and test app, get class compile error.


A few things to consider ...

1) What version of tomcat are you using?  What follows is based on using
version 5.0.x.  The syntax for configuring JDBC resources in 5.5 is a
little different.

2)  mm.mysql 2.0.14 is VERY old.  What version of MySQL Db server are
you using?  You may want to take a look at the MySQL website for an
updated driver .jar file.  I believe the current driver version is
Connector/J 5.0.5

3) The mm.mysql driver file has to be in common/lib.  That's because the
tomcat server itself has to be able to access the driver when setting up
the db pool before your webapp even loads.

4) If using the tomcat internal database pooling, there is no need for
adding commons-dbcp.jar or commons-pool.jar as tomcat has a slightly
refactored version of commons-dbcp already.  The refactoring was only a
package name change to avoid collisions with webapps that use
commons-dbcp directly.  Only add those jars if you have some code of
your own using classes in the packages org.apache.commons.dbcp or
org.apache.commons.pool.

5) The stack trace cited below is in regards to your test jsp file.
Class files need to be compiled before deployment as tomcat doesn't
compile them itself -- it only compiles jsps.  To fix the error below,
compile DbTest.java to DbTest.class and place it in WEB-INF/classes/foo
or in a .jar archive in WEB-INF/lib.

There's a start.  You might also want to review the tomcat docs
regarding JNDI and JDBC resources -- how to configure, etc., ...

--David


Wayne Bragg wrote:

Sorry about the previous premature post.....
This is the full question/problem....

I am trying to install DBCP and mm.mysql 2.0.14 (JDBC Driver) and a test app to see if it works. I'm not sure I have all the correct steps and configuration, in other words I don't know what I am doing.. Here is what I know and my setup for this test example that I keep getting a class compile error on.

You can probably tell I only have HALF a clue at best? Any ideas what's wrong?

This is the error reported by browser -

type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: Unable to compile class for JSP
An error occurred at line: 7 in the jsp file: /test.jsp
Generated servlet error:
foo.DBTest cannot be resolved to a type
An error occurred at line: 7 in the jsp file: /test.jsp
Generated servlet error:
foo.DBTest cannot be resolved to a type
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:512)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
root cause
org.apache.jasper.JasperException: Unable to compile class for JSP
An error occurred at line: 7 in the jsp file: /test.jsp
Generated servlet error:
foo.DBTest cannot be resolved to a type
An error occurred at line: 7 in the jsp file: /test.jsp
Generated servlet error:
foo.DBTest cannot be resolved to a type
org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84)
org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328)
org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:414)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:297)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:305)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)

This is the Tomcat log -

Mar 5, 2007 12:13:30 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP
An error occurred at line: 7 in the jsp file: /test.jsp
Generated servlet error:
foo.DBTest cannot be resolved to a type
An error occurred at line: 7 in the jsp file: /test.jsp
Generated servlet error:
foo.DBTest cannot be resolved to a type
at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:84) at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:328) at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:414)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:297)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:276)
at org.apache.jasper.compiler.Compiler.compile(Compiler.java:264)
at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:563) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:305) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80) at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Unknown Source)

This is how I setup and config for the DBCP and mm.mysql 2.0.14 (JDBC Driver)

Added to \www\tomcat5\common\lib
   commons-pool-1.3.jar
   commons-collections-3.2.jar
   commons-dbcp-1.2.1.jar

Added to \www\webapps\DBTest\WEB-INF\lib
   mm.mysql-2.0.14-bin.jar

.classpath

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="WEB-INF/java">
 <attributes>
 </attributes>
</classpathentry>
<classpathentry kind="lib" path="WEB-INF/lib/mm.mysql-2.0.14-bin.jar">
 <attributes>
 </attributes>
</classpathentry>
<classpathentry kind="con" path="org.gjt.mm.mysql.Driver">
 <attributes>
 </attributes>
</classpathentry>
<classpathentry kind="output" path="WEB-INF/classes"/>
</classpath>

.project

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>chat-demo-war</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
 <buildCommand>
  <name>org.eclipse.jdt.core.javabuilder</name>
  <arguments>
  </arguments>
 </buildCommand>
</buildSpec>
<natures>
 <nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

\DBTest\WEB-INF\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>
 <description>MySQL Test App</description>
 <resource-ref>
     <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>
</web-app>

Added to server.xml

<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>30</value>
   </parameter>
   <parameter>
      <name>maxWait</name>
      <value>10000</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?autoReconnect=true</value>
   </parameter>
The example I was following wasn't clear about if these next three went here or not
<parameter>
     <name>removeAbandoned</name>
     <value>true</value>
   </parameter>
   <parameter>
     <name>removeAbandonedTimeout</name>
     <value>60</value>
   </parameter>
   <parameter>
     <name>logAbandoned</name>
     <value>true</value>
   </parameter>
</ResourceParams>
</Context>

The class I can't get to compile

package foo;

import javax.naming.*;
import javax.sql.*;
import java.sql.*;

public class DBTest {

 String foo = "Not Connected";
 int bar = -1;

 public void init() {
   try{
     Context ctx = new InitialContext();
     if(ctx == null )
         throw new Exception("Boom - No Context");

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

     if (ds != null) {
       Connection conn = ds.getConnection();

       if(conn != null)  {
           foo = "Got Connection "+conn.toString();
           Statement stmt = conn.createStatement();
           ResultSet rst =
               stmt.executeQuery(
                 "select id, foo, bar from testdata");
           if(rst.next()) {
              foo=rst.getString(2);
              bar=rst.getInt(3);
           }
           conn.close();
       }
     }
   }catch(Exception e) {
     e.printStackTrace();
   }
}

public String getFoo() { return foo; }
public int getBar() { return bar;}
}

The test application

<html>
 <head>
   <title>DB Test</title>
 </head>
 <body>

 <%
   foo.DBTest tst = new foo.DBTest();
   tst.init();
 %>

 <h2>Results</h2>
   Foo <%= tst.getFoo() %><br/>
   Bar <%= tst.getBar() %>

 </body>
</html>




---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.446 / Virus Database: 268.18.7/711 - Release Date: 3/5/2007 9:41 AM




---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



--
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.446 / Virus Database: 268.18.7/711 - Release Date: 3/5/2007 9:41 AM




---------------------------------------------------------------------
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to