Tomcat 6和Tomcat 5.5不兼容时出错

时间:2009-05-18 03:22:19

标签: servlets tomcat6 tomcat5.5

我使用Tomcat 6开发了一个Tomcat应用程序进行测试。我现在已经将它部署到Tomcat 5.5 - 当我调用servlet时,我得到一个对我来说没有多大意义的错误。有谁知道导致这个错误的原因。

例外

javax.servlet.ServletException:分配servlet实例时出错     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) 根本原因

java.lang.UnsupportedClassVersionError:.class文件中的错误版本号     java.lang.ClassLoader.defineClass1(本机方法)     需要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(本机方法)     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)

2 个答案:

答案 0 :(得分:2)

这与tomcat无关。该错误是由.class文件版本差异引起的。

最有可能的是,您已经使用Java6编译了一个.class文件,并尝试在Java5上运行它。

解决方案是在较新版本的Java上运行tomcat5.5,或者只是重新编译。

答案 1 :(得分:1)

我也遇到了这个问题。问题实际上是在Tomcat 6中编译的jsps。所以当我切换到Tomcat 5时,这些编译的jsps是导致问题的原因。解决方案是清除工作目录。

但是,如果您指定由Tomcat 6和5共享的CATALINA_BASE,则只会出现问题。