Class com.kuang.servlet.HelloServlet is not a servlet Description The server encountered an unexpected condition that prevented it from fulfilling the request. exception jakarta.servlet.ServletException: Class com.kuang.servlet.HelloServlet is not a servlet org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:353) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:872) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1695) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Thread.java:748) Reason. java.lang.ClassCastException: com.kuang.servlet.HelloServlet cannot be cast to jakarta.servlet.Servlet org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690) org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:353) org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:872) org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1695) org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) java.lang.Thread.run(Thread.java:748)
This is because the latest Tomcat 10 is used, and the biggest change in the latest Tomcat 10 is that Tomcat 10 m1 replaces JavaEE with Jakarta® EE
Jakarta® EE has a very, very important update over the previous JavaEE: the package name is no longer “javax.servlet”. Instead, it has been changed to “jakarta.servlet”
The first solution: downgrade Tomcat 10 to Tomcat 9
The second solution: continue to use Tomcat 10
Import the correct dependencies
<!-- https://mvnrepository.com/artifact/jakarta.servlet/jakarta.servlet-api --> <dependency> <groupId>jakarta.servlet</groupId> <artifactId>jakarta.servlet-api</artifactId> <version>5.0.0</version> <scope>provided</scope> </dependency> <!-- https://mvnrepository.com/artifact/jakarta.servlet.jsp/jakarta.servlet.jsp-api --> <dependency> <groupId>jakarta.servlet.jsp</groupId> <artifactId>jakarta.servlet.jsp-api</artifactId> <version>3.0.0</version> <scope>provided</scope> </dependency>
Similar Posts:
- Tomcat Warning: HTTP Status 500 – Internal Server Error
- [Solved] Invalid character found in method name. HTTP method names must be tokens
- Web Project Error: javax.servlet.ServletException: Circular view path [registerForm]
- [Solved] Cannot call sendError() after the response has been committed
- java.lang.UnsatisfiedLinkError: no rxtxSerial in java.library.path
- JavaWeb Error:java.lang.NumberFormatException: null
- [Solved] JSP Use MySQL database Error: java.lang.classnotfoundexception: com.mysql.jdbc.driver
- HTTP status 500 – servlet. Init () [How to Solve]
- [Solved] tomcat at org.apache.tomcat.util.buf.CharChunk.append(CharChunk.java:355)
- [Solved] layui url: rendering data error (thymeleaf)