我使用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)
答案 0 :(得分:2)
这与tomcat无关。该错误是由.class文件版本差异引起的。
最有可能的是,您已经使用Java6编译了一个.class文件,并尝试在Java5上运行它。
解决方案是在较新版本的Java上运行tomcat5.5,或者只是重新编译。
答案 1 :(得分:1)
我也遇到了这个问题。问题实际上是在Tomcat 6中编译的jsps。所以当我切换到Tomcat 5时,这些编译的jsps是导致问题的原因。解决方案是清除工作目录。
但是,如果您指定由Tomcat 6和5共享的CATALINA_BASE,则只会出现问题。