You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Allistair Crossley <Al...@QAS.com> on 2003/08/26 14:13:55 UTC

IncompatibleClassChangeError when in Action class but not in a JSP for ResultSet

I have a Struts / Tomcat 5 setup and I use the same JDK 1.4.1 to compile classes as Tomcat uses to run.

I have the following code in the action class

DBConnectionFactory db = (DBConnectionFactory)getServlet().getServletContext().getAttribute("db");
Connection c = db.getConnection();
c.setCatalog("cat");
Statement s = c.createStatement();
ResultSet rs = s.executeQuery("SELECT * FROM Users");
...	
c.close();
s.close();
rs.close();

And in the JSP

DBConnectionFactory db = (DBConnectionFactory)application.getAttribute("db");
Connection c = db.getConnection();
c.setCatalog("cat");
Statement s = c.createStatement();
ResultSet rs = s.executeQuery("SELECT * FROM Users");
...	
c.close();
s.close();
rs.close();

The JSP version runs just fine and I get a list of users. In the class, I get the following error, and I seem to have narrowed it down to using the ResultSet. I have recompiled ALL my code with the same JDK that Tomcat is using. In any case, it works in the JSP. Any ideas?

ResultSet rs = s.executeQuery("SELECT * FROM Users");

SEVERE: An exception or error occurred in the container during the request processing
java.lang.IncompatibleClassChangeError: org.apache.log4j.spi.ThrowableInformation
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1265)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1225)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
	at org.apache.log4j.spi.LoggingEvent.<init>(LoggingEvent.java:145)
	at org.apache.log4j.Category.forcedLog(Category.java:372)
	at org.apache.log4j.Category.log(Category.java:864)
	at org.apache.commons.logging.impl.Log4JLogger.error(Log4JLogger.java:192)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:287)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:562)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:974)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:205)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:562)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:974)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:177)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:149)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:562)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:974)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:156)
	at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:151)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:562)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:974)
	at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:203)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:637)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:488)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:568)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:631)
	at java.lang.Thread.run(Thread.java:536)


<FONT SIZE=1 FACE="VERDANA,ARIAL" COLOR=BLUE> 
-------------------------------------------------------
QAS Ltd.
Developers of QuickAddress Software
<a href="http://www.qas.com">www.qas.com</a>
Registered in England: No 2582055
Registered in Australia: No 082 851 474
-------------------------------------------------------
</FONT>