Tomcat部署servlet实现类时出现java.lang.ClassCastException类型转换异常
Posted java编程小白进阶中
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Tomcat部署servlet实现类时出现java.lang.ClassCastException类型转换异常相关的知识,希望对你有一定的参考价值。
最近使用Tomcat服务器部署Servlet实现类时,idea运行时控制台没有异常,当在浏览器访问servlet实现类时,浏览器和控制台出现以下错误:
java.lang.ClassCastException: com.hebeu.first.ServletDemo cannot be cast to jakarta.servlet.Servlet
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1043)
at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:762)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:135)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:353)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:870)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1696)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
翻译过来就是servlet实现类类型转换异常,可以排除Tomcat和servlet配置以及代码错误,网上的解决方法都不太适用,就看到一篇博客说servlet访问404可能是开发环境版本不兼容的问题,当时下载Tomcat时没考虑那么多想着用最新版本Tomcat-10.0.6,于是下载了Tomcat-9.0.46,配置重新部署就可以了。项目没写其他的,浏览器访问就是空白页面(图1所示),idea控制台输出servlet的init和service方法信息(图2所示)。
写此博客记录Tomcat部署servlet出现的错误,以后尽量使用一些稳定版本(如最新版本的低一版本),新版本意味新特性,也意味着新的错误,网上可能也没有解决方法
以上是关于Tomcat部署servlet实现类时出现java.lang.ClassCastException类型转换异常的主要内容,如果未能解决你的问题,请参考以下文章
在 Tomcat 上实现 Jersey 时出现“javax.servlet.ServletException: java.lang.NoClassDefFoundError”
用eclipse部署tomcat时出现异常:java.lang.IllegalArgumentException