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所示)。

在这里插入图片描述

(图1)

在这里插入图片描述

(图2)

写此博客记录Tomcat部署servlet出现的错误,以后尽量使用一些稳定版本(如最新版本的低一版本),新版本意味新特性,也意味着新的错误,网上可能也没有解决方法

以上是关于Tomcat部署servlet实现类时出现java.lang.ClassCastException类型转换异常的主要内容,如果未能解决你的问题,请参考以下文章

在 Tomcat 上实现 Jersey 时出现“javax.servlet.ServletException: java.lang.NoClassDefFoundError”

tomcat配置servlet时出现500错误

用eclipse部署tomcat时出现异常:java.lang.IllegalArgumentException

java.lang.NoSuchFieldError:在Tomcat上部署shiro时出现subjectDAO异常

tomcat启动后访问rest接口时出现类加载不了的异常?

Tomcat热部署的实现原理