tomcat配置servlet时出现500错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat配置servlet时出现500错误相关的知识,希望对你有一定的参考价值。

错误提示如下:
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:875)
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:1876)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:889)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1353)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1232)
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:875)
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)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.27 logs.

编译用的JDK版本和执行时的JDK版不一致所导致的:如果你Tomcat所使用的JDK配置是正确的,那你可这样做:
window -> preferences -> Java -> Installeds JREs 下选择与你tomcat一致的JDK,确定后,重启tomcat就OK了。
参考技术A tomcat用的jdk和WAR包编译class用的jdk版本不一致 参考技术B 配置了多个jdk 留一个版本的jdk 参考技术C jdk版本不对

tomcat启动时出现了Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]等错误

tomcat 启动时报错:Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]等错误

解决办法:

是tomcat版本太高的原因,为其配套的servlet-api.jar不匹配或项目工程lib下有低版本的servlet-api.jar, 
tomcat7以前的这个包没有getSessionCookieConfig这个方法,7的包有这个方法, 
解决方法,删除项目工程lib文件夹的低版本的servlet-api.jar,tomcat的lib文件夹里用默认带的jar包 
或者把tomcat换成6的




以上是关于tomcat配置servlet时出现500错误的主要内容,如果未能解决你的问题,请参考以下文章

tomcat启动时出现了Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]等错误

当 spring.http.multipart.enabled=false 并使用 Apache Commons File Upload 时出现“Servlet 没有多部分配置”500 错误

在Tomcat中部署应用程序时出现错误404

登陆网页时出现 500 Servlet Exception 怎么解决

HTTP 状态 500 – 内部服务器错误(Java、Eclipse、Servlet、Tomcat)

Tomcat部署servlet实现类时出现java.lang.ClassCastException类型转换异常