服务器上的servlet项目异常

时间:2011-07-16 11:49:44

标签: jsp tomcat java-ee servlets

我的项目在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.

2 个答案:

答案 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