我的项目在eclipse上工作很好但是当我在战争中运行并在服务器上运行时我给出了这个例外:
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
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:151)
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:834)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)
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:621)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1847)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:873)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1326)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1205)
java.security.AccessController.doPrivileged(Native Method)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:834)
org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)
java.lang.Thread.run(Thread.java:595)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.23 logs.
答案 0 :(得分:1)
您已经使用服务器不支持的JDK版本编译了类。
要么看看你是否可以为你的dev获得匹配的JDK。环境和服务器,或者在构建目标服务器的Java版本时尝试使用-target
javac
选项。
答案 1 :(得分:0)
JVM只能运行使用相同版本或早期版本的Java Compiler编译的类文件。
如果您使用较低版本的JVM来运行使用更高版本的Java Compiler编译的类文件,则会发生 UnsupportedClassVersionError
。
因此,请确保您的tomcat使用的JDK版本高于用于编译战争中.class
文件的JDK版本。
您既不能将tomcat服务器的JDK升级到最新版本,也不能使用与tomcat相同的JDK版本来编译源代码并构建war