On Fri, Mar 14, 2008 at 5:03 PM, Jim Garrison <[EMAIL PROTECTED]> wrote:
>
>  I'm getting a NoSuchMethodError on
>  org.apache.commons.dbcp.DelegatingCallableStatement.getInnermostDelegate
>  ().
>
>  AFAICT DelegatingCallableStatement inherits ultimately from
>  DelegatingStatement, which DOES have such a method. I've examined the
>  commons-dbcp-1.2.1.jar file that's in the classpath, and the
>  inheritance hierarchy looks OK and there IS a getInnermostDelegate()
>  method on DelegatingStatement.
>
>
>  Since this is running in BusinessObjects' Tomcat 5.0 server I thought
>  there might be a classloader problem.  I printed out the classloaders
>  at the point where the error happens, but the debugging output seems
>  to indicate that everything should work -- but I still get the
>  exception.  I can't really post an SSCCE as this is buried in a much
>  larger system that runs only under Tomcat.
>
>  Source Fragment
>  ===============
>
>  import java.sql.*;
>  import org.apache.commons.dbcp.DelegatingCallableStatement;
>     .
>     .
>     .
>  PreparedStatement stmt;
>     .
>     .
>     .
>  protected void executeStatement() throws SQLException
>  {
>   if ( TPMonitor.TYPE_ORACLE == TPMonitor.getInstance().getDBType() )
>   {
>     System.out.println("DBTYPE: ORA");
>     System.out.println("stmt CLASS: " + stmt.getClass().getName());
>     System.out.println("stmt LOADER: " +
>  stmt.getClass().getClassLoader().toString());
>
>     DelegatingCallableStatement dcs = (DelegatingCallableStatement)
>  stmt;
>     System.out.println("dcs CLASS: " + dcs.getClass().getName());
>     System.out.println("dcs LOADER: " +
>  dcs.getClass().getClassLoader().toString());
>
>     Statement cs = dcs.getInnermostDelegate();
>
>
>  The above statement throws the following exception:
>
>  java.lang.NoSuchMethodError:
>  org.apache.commons.dbcp.DelegatingCallableStatement.getInnermostDelegate
>  ()Ljava/sql/CallableStatement;
>
>
>
>  Debugging Output
>  ================
>
>  DBTYPE: ORA
>  stmt CLASS: org.apache.commons.dbcp.DelegatingCallableStatement
>  stmt LOADER: StandardClassLoader
>   delegate: true
>   repositories:
>     file:C:\Program Files\Business Objects\Tomcat\common\classes\
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\endorsed\xalan.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\endorsed\xercesImpl.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\endorsed\xml-apis.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\ant-launcher.jar
>     file:C:\Program Files\Business Objects\Tomcat\common\lib\ant.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\commons-collections-2.1.1.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\commons-dbcp-1.2.1.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\commons-el.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\commons-pool-1.2.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\jasper-compiler.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\jasper-runtime.jar
>     file:C:\Program Files\Business Objects\Tomcat\common\lib\jsp-api.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\naming-common.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\naming-factory.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\naming-java.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\naming-resources.jar
>     file:C:\Program Files\Business Objects\Tomcat\common\lib\ojdbc14.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\servlet-api.jar
>     file:C:\Program Files\Business Objects\Tomcat\common\lib\sqljdbc.jar
>  ----------> Parent Classloader:
>  [EMAIL PROTECTED]
>
>  dcs CLASS: org.apache.commons.dbcp.DelegatingCallableStatement
>  dcs LOADER: StandardClassLoader
>   delegate: true
>   repositories:
>     file:C:\Program Files\Business Objects\Tomcat\common\classes\
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\endorsed\xalan.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\endorsed\xercesImpl.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\endorsed\xml-apis.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\ant-launcher.jar
>     file:C:\Program Files\Business Objects\Tomcat\common\lib\ant.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\commons-collections-2.1.1.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\commons-dbcp-1.2.1.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\commons-el.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\commons-pool-1.2.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\jasper-compiler.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\jasper-runtime.jar
>     file:C:\Program Files\Business Objects\Tomcat\common\lib\jsp-api.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\naming-common.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\naming-factory.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\naming-java.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\naming-resources.jar
>     file:C:\Program Files\Business Objects\Tomcat\common\lib\ojdbc14.jar
>     file:C:\Program Files\Business
>  Objects\Tomcat\common\lib\servlet-api.jar
>     file:C:\Program Files\Business Objects\Tomcat\common\lib\sqljdbc.jar
>  ----------> Parent Classloader:
>  [EMAIL PROTECTED]
>
>
>  java.lang.NoSuchMethodError:
>  org.apache.commons.dbcp.DelegatingCallableStatement.getInnermostDelegate
>  ()Ljava/sql/CallableStatement;

This looks like a signature from dbcp 1.1.  Are you sure you used dbcp
1.2+ when you compiled the classes below?  In dbcp 1.1,
getInnermostDelegate is implemented in DelegatingCallableStatement and
it returns a CallableStatement.  In 1.2, inheritance is as you
describe and this method returns a Statement (which you need to cast
to CallableStatement).

Phil

>     at
>  com.troux.reportingData.impactAnalysis.AssetAnalysisResultQuery.executeS
>  tatement(AssetAnalysisResultQuery.java:135)
>     at com.troux.servercommon.db.TPDBCalls.doTry(TPDBCalls.java:40)
>     at
>  com.troux.servercommon.db.TPHelperBase.doATry(TPHelperBase.java:160)
>     at com.troux.servercommon.db.TPQuerier.doATry(TPQuerier.java:79)
>     at
>  com.troux.servercommon.db.TPHelperBase.handleDatabaseAccess(TPHelperBase
>  .java:207)
>     at
>  com.troux.servercommon.db.TPHelperBase.handleDatabaseAccess(TPHelperBase
>  .java:188)
>     at
>  com.troux.reportingData.impactAnalysis.AssetAnalysisResultGenerator.gene
>  rateResults(AssetAnalysisResultGenerator.java:46)
>     at
>  com.troux.reportingData.impactAnalysis.AssetAnalyzerImpl.generateResults
>  (AssetAnalyzerImpl.java:24)
>     at
>  com.troux.reportingData.impactAnalysis.AssetAnalysisServlet.processReque
>  st(AssetAnalysisServlet.java:121)
>     at
>  com.troux.reportingData.impactAnalysis.AssetAnalysisServlet.doGet(AssetA
>  nalysisServlet.java:140)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>     at
>  org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applica
>  tionFilterChain.java:237)
>
>     etc, etc.
>
>  IMPORTANT NOTICE:
>  This message may contain confidential information. If you have received this 
> e-mail in error, do not use, copy or distribute it. Do not open any 
> attachments. Delete it immediately from your system and notify the sender 
> promptly by e-mail that you have done so. Thank you.
>
>
>
>  ---------------------------------------------------------------------
>  To start a new topic, e-mail: users@tomcat.apache.org
>  To unsubscribe, e-mail: [EMAIL PROTECTED]
>  For additional commands, e-mail: [EMAIL PROTECTED]
>
>

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

Reply via email to