Ankur
Ankur

Reputation: 51100

Error with Tomcat 6 and Tomcat 5.5 Incompatibility

I developed a Tomcat application using Tomcat 6 for testing. I have now deployed it to Tomcat 5.5 - when I invoke the servlet I get an error which doesn't make much sense to me. Does anyone know what causes this error.

exception

javax.servlet.ServletException: Error allocating a servlet instance org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874) org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) java.lang.Thread.run(Thread.java:595) root cause

java.lang.UnsupportedClassVersionError: Bad version number in .class file java.lang.ClassLoader.defineClass1(Native Method) java.lang.ClassLoader.defineClass(ClassLoader.java:620) java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1853) org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:875) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1330) org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1209) java.security.AccessController.doPrivileged(Native Method) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174) org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874) org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665) org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528) org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81) org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689) java.lang.Thread.run(Thread.java:595)

Upvotes: 2

Views: 4549

Answers (2)

andy
andy

Reputation: 11

I just ran across this too. The problem was actually jsps that had been compiled in Tomcat 6. So when I switched to Tomcat 5, these compiled jsps were the cause of the problem. The solution is to clear the work directory.

However, this would only be the problem if you are specifying CATALINA_BASE which was shared by Tomcat 6 and 5.

Upvotes: 1

James Davies
James Davies

Reputation: 9839

This has nothing to do with tomcat. The error is caused by .class file version difference.

Most likely, you've compiled a .class file with Java6, and have tried to run it on Java5.

The solution is to either run tomcat5.5 on the newer version of Java, or just recompile.

Upvotes: 2

Related Questions