com.example.web.DemoServlet不是Servlet

  • Post author:
  • Post category:其他


相关代码:

package com.example.web;

import javax.servlet.*;
import java.io.IOException;

public class DemoServlet implements Servlet {
    @Override
    public void init(ServletConfig servletConfig) throws ServletException {

    }
    @Override
    public ServletConfig getServletConfig() {
        return null;
    }
    // 在这里处理请求
    @Override
    public void service(ServletRequest servletRequest, ServletResponse servletResponse) throws ServletException, IOException {
        System.out.println("处理请求!");
    }
    @Override
    public String getServletInfo() {
        return null;
    }
    @Override
    public void destroy() {

    }
}

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>DemoServlet</servlet-name>
        <servlet-class>com.example.web.DemoServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <!-- 这个时候访问地址为http://port/工程路径/hello -->
        <servlet-name>DemoServlet</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
</web-app>

访问地址:http://localhost:8080/web_war/hello出现下面报错

错误信息:

jakarta.servlet.ServletException: 类com.example.web.DemoServlet不是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



C

o

n

n

e

c

t

i

o

n

H

a

n

d

l

e

r

.

p

r

o

c

e

s

s

(

A

b

s

t

r

a

c

t

P

r

o

t

o

c

o

l

.

j

a

v

a

:

872

)

o

r

g

.

a

p

a

c

h

e

.

t

o

m

c

a

t

.

u

t

i

l

.

n

e

t

.

N

i

o

E

n

d

p

o

i

n

t

ConnectionHandler.process(AbstractProtocol.java:872) org.apache.tomcat.util.net.NioEndpoint






C


o


n


n


e


c


t


i


o


n


H


a


n


d


l


e


r


.


p


r


o


c


e


s


s


(


A


b


s


t


r


a


c


t


P


r


o


t


o


c


o


l


.


j


a


v


a




:








8


7


2


)


o


r


g


.


a


p


a


c


h


e


.


t


o


m


c


a


t


.


u


t


i


l


.


n


e


t


.


N


i


o


E


n


d


p


o


i


n


t





SocketProcessor.doRun(NioEndpoint.java:1705)

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



W

o

r

k

e

r

.

r

u

n

(

T

h

r

e

a

d

P

o

o

l

E

x

e

c

u

t

o

r

.

j

a

v

a

:

659

)

o

r

g

.

a

p

a

c

h

e

.

t

o

m

c

a

t

.

u

t

i

l

.

t

h

r

e

a

d

s

.

T

a

s

k

T

h

r

e

a

d

Worker.run(ThreadPoolExecutor.java:659) org.apache.tomcat.util.threads.TaskThread






W


o


r


k


e


r


.


r


u


n


(


T


h


r


e


a


d


P


o


o


l


E


x


e


c


u


t


o


r


.


j


a


v


a




:








6


5


9


)


o


r


g


.


a


p


a


c


h


e


.


t


o


m


c


a


t


.


u


t


i


l


.


t


h


r


e


a


d


s


.


T


a


s


k


T


h


r


e


a


d





WrappingRunnable.run(TaskThread.java:61)

java.lang.Thread.run(Thread.java:748)

java.lang.ClassCastException: com.example.web.DemoServlet 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



C

o

n

n

e

c

t

i

o

n

H

a

n

d

l

e

r

.

p

r

o

c

e

s

s

(

A

b

s

t

r

a

c

t

P

r

o

t

o

c

o

l

.

j

a

v

a

:

872

)

o

r

g

.

a

p

a

c

h

e

.

t

o

m

c

a

t

.

u

t

i

l

.

n

e

t

.

N

i

o

E

n

d

p

o

i

n

t

ConnectionHandler.process(AbstractProtocol.java:872) org.apache.tomcat.util.net.NioEndpoint






C


o


n


n


e


c


t


i


o


n


H


a


n


d


l


e


r


.


p


r


o


c


e


s


s


(


A


b


s


t


r


a


c


t


P


r


o


t


o


c


o


l


.


j


a


v


a




:








8


7


2


)


o


r


g


.


a


p


a


c


h


e


.


t


o


m


c


a


t


.


u


t


i


l


.


n


e


t


.


N


i


o


E


n


d


p


o


i


n


t





SocketProcessor.doRun(NioEndpoint.java:1705)

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



W

o

r

k

e

r

.

r

u

n

(

T

h

r

e

a

d

P

o

o

l

E

x

e

c

u

t

o

r

.

j

a

v

a

:

659

)

o

r

g

.

a

p

a

c

h

e

.

t

o

m

c

a

t

.

u

t

i

l

.

t

h

r

e

a

d

s

.

T

a

s

k

T

h

r

e

a

d

Worker.run(ThreadPoolExecutor.java:659) org.apache.tomcat.util.threads.TaskThread






W


o


r


k


e


r


.


r


u


n


(


T


h


r


e


a


d


P


o


o


l


E


x


e


c


u


t


o


r


.


j


a


v


a




:








6


5


9


)


o


r


g


.


a


p


a


c


h


e


.


t


o


m


c


a


t


.


u


t


i


l


.


t


h


r


e


a


d


s


.


T


a


s


k


T


h


r


e


a


d





WrappingRunnable.run(TaskThread.java:61)

java.lang.Thread.run(Thread.java:748)

报错原因

Spring (and Spring Boot) currently only support JavaEE and not JakartaEE. Which means that it will only run on/with JavaEE compatible servers. Tomcat10 is an implementation of the JakartaEE specification which currently isn’t supported.The only solution is to downgrade to Tomcat 9.

解决方案:

我用的是Tomcat10切换到版本9或以下, 我换成了Tomcat8就能成功了。



版权声明:本文为qq_43259860原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。