You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Wayne Bragg <wl...@cox.net> on 2007/03/05 08:23:08 UTC

install DBCP and mm.mysql 2.0.14 (JDBC Driver) and test app, get class compile error.

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>

Re: install DBCP and mm.mysql 2.0.14 (JDBC Driver) and test app, get class compile error.

Posted by Wayne Bragg <wl...@cox.net>.
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" <wl...@cox.net>
To: "Tomcat Users List" <us...@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" <dn...@cornell.edu>
> To: "Tomcat Users List" <us...@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: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>>
>> -- 
>> 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: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>
> -- 
> 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: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: install DBCP and mm.mysql 2.0.14 (JDBC Driver) and test app, get class compile error.

Posted by David Smith <dn...@cornell.edu>.
Answers inline below.

--David

Wayne Bragg wrote:
> 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..
>

If commons-el.jar was all that was in common/lib, only add the mysql
driver jar.  commons-collections shouldn't be needed except by your
project if you use it.

> 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.
>

IMHO it's a cleaner solution if you can get this all in tomcat or php. 
Having part in one and part in the other just makes things complicated
and hard to work with.

> 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?
>

A lot of people on this list seem to like Eclipse as an IDE.  I
personally am a fan of Netbeans.  Don't use any of Microsoft's developer
tools except for those rare moments when I have to help a co-worker out
with .net stuff.

> Thanks for the help..
>
>
>
> ----- Original Message ----- From: "David Smith" <dn...@cornell.edu>
> To: "Tomcat Users List" <us...@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: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>>
>> -- 
>> 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: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: install DBCP and mm.mysql 2.0.14 (JDBC Driver) and test app, get class compile error.

Posted by Wayne Bragg <wl...@cox.net>.
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" <dn...@cornell.edu>
To: "Tomcat Users List" <us...@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: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>
> -- 
> 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: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: install DBCP and mm.mysql 2.0.14 (JDBC Driver) and test app, get class compile error.

Posted by David Smith <dn...@cornell.edu>.
There's no reason I know of to have .classpath or .project in the
webapp.  The servlet spec doesn't define them and tomcat doesn't use
them.  I would imagine these are specific to the development environment
you are working in.

I've seen posts from other people integrating PHP with Tomcat, but don't
do it myself.  Hopefully someone else on the list might offer some
helpful tips there.

Glad you got things working.

--David

Wayne Bragg wrote:
> Thank you once again David,
>
> Yes I did upgrade the mysql driver, made the appropriate changes, and
> now it's all working fine!
>
> Is there any reason to have .classpath and .project in the \DBTest\
> directory? Are they for deploying or a leftover from another platform?
>
> Next step is to tie in PHP the same way.
> I'll try configuring it with the docs I've come across, if not you'll
> see me back here.
> Unless you know right offhand were some "newbie" docs can be found for
> configuring the PHP using drivers like the mysql would you? Or have
> the steps handy!
>
> Can't thank you enough for what you have already done!
>


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


Re: install DBCP and mm.mysql 2.0.14 (JDBC Driver) and test app, get class compile error.

Posted by Wayne Bragg <wl...@cox.net>.
Thank you once again David,

Yes I did upgrade the mysql driver, made the appropriate changes, and now 
it's all working fine!

Is there any reason to have .classpath and .project in the \DBTest\ 
directory? Are they for deploying or a leftover from another platform?

Next step is to tie in PHP the same way.
I'll try configuring it with the docs I've come across, if not you'll see me 
back here.
Unless you know right offhand were some "newbie" docs can be found for 
configuring the PHP using drivers like the mysql would you? Or have the 
steps handy!

Can't thank you enough for what you have already done!

----- Original Message ----- 
From: "David Smith" <dn...@cornell.edu>
To: "Tomcat Users List" <us...@tomcat.apache.org>
Sent: Monday, March 05, 2007 1:36 PM
Subject: Re: install DBCP and mm.mysql 2.0.14 (JDBC Driver) and test app, 
get class compile error.


> The <Resource> tag in your context config changes and the
> <ResourceParams> tag is removed as in ....
>
> <Resource name="jdbc/TestDB"
> auth="Container"
> type="javax.sql.DataSource"
> maxActive="100"
> maxIdle="30"
> maxWait="10000"
> username="javauser"
> password="javadude"
> driverClassName="org.gjt.mm.mysql.Driver"
> url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"
> removeAbandoned="true"
> removeAbandonedTimeout="60"
> logAbandoned="true" />
>
> In a side note, if you update your mysql driver, the new class name is
> com.mysql.jdbc.Driver and you should remove ?autoReconnect=true from the
> database url.
>
> --David
>
> Wayne Bragg wrote:
>> 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 -
>>
>>
>> ----- Original Message ----- From: "Wayne Bragg" <wl...@cox.net>
>> To: "Tomcat Users List" <us...@tomcat.apache.org>
>> Sent: Monday, March 05, 2007 11:46 AM
>> Subject: Re: install DBCP and mm.mysql 2.0.14 (JDBC Driver) and test
>> app, get class compile error.
>>
>>
>>> David, you can ignore the question about how to compile .java into
>>> .class. I just found out the jdk can do that.
>>>
>>>
>>> Wayne
>>>
>>> ----- Original Message ----- From: "David Smith" <dn...@cornell.edu>
>>> To: "Tomcat Users List" <us...@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: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>
> -- 
> 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: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: install DBCP and mm.mysql 2.0.14 (JDBC Driver) and test app, get class compile error.

Posted by David Smith <dn...@cornell.edu>.
The <Resource> tag in your context config changes and the
<ResourceParams> tag is removed as in ....

 <Resource name="jdbc/TestDB"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
username="javauser"
password="javadude"
driverClassName="org.gjt.mm.mysql.Driver"
url="jdbc:mysql://localhost:3306/javatest?autoReconnect=true"
removeAbandoned="true"
removeAbandonedTimeout="60"
logAbandoned="true" />

In a side note, if you update your mysql driver, the new class name is
com.mysql.jdbc.Driver and you should remove ?autoReconnect=true from the
database url.

--David

Wayne Bragg wrote:
> 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 -
>
>
> ----- Original Message ----- From: "Wayne Bragg" <wl...@cox.net>
> To: "Tomcat Users List" <us...@tomcat.apache.org>
> Sent: Monday, March 05, 2007 11:46 AM
> Subject: Re: install DBCP and mm.mysql 2.0.14 (JDBC Driver) and test
> app, get class compile error.
>
>
>> David, you can ignore the question about how to compile .java into
>> .class. I just found out the jdk can do that.
>>
>>
>> Wayne
>>
>> ----- Original Message ----- From: "David Smith" <dn...@cornell.edu>
>> To: "Tomcat Users List" <us...@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: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: install DBCP and mm.mysql 2.0.14 (JDBC Driver) and test app, get class compile error.

Posted by Wayne Bragg <wl...@cox.net>.
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 -


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


> David, you can ignore the question about how to compile .java into .class. 
> I just found out the jdk can do that.
>
>
> Wayne
>
> ----- Original Message ----- 
> From: "David Smith" <dn...@cornell.edu>
> To: "Tomcat Users List" <us...@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: users-unsubscribe@tomcat.apache.org
>> For additional commands, e-mail: users-help@tomcat.apache.org
>>
>>
>>
>> -- 
>> 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: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>
> -- 
> 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: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: install DBCP and mm.mysql 2.0.14 (JDBC Driver) and test app, get class compile error.

Posted by Wayne Bragg <wl...@cox.net>.
David, you can ignore the question about how to compile .java into .class. I 
just found out the jdk can do that.


Wayne

----- Original Message ----- 
From: "David Smith" <dn...@cornell.edu>
To: "Tomcat Users List" <us...@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: users-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: users-help@tomcat.apache.org
>
>
>
> -- 
> 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: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org


Re: install DBCP and mm.mysql 2.0.14 (JDBC Driver) and test app, get class compile error.

Posted by David Smith <dn...@cornell.edu>.
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: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org