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;
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: [email protected]
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]