问题描述
即使我的代码中只有一个 servlet,我也会收到错误消息。
WARN 2021-04-06 21:52:42,874 [main] org.eclipse.jetty.util.component.AbstractLifeCycle: Failed ServletHandler@93501be{Failed}: java.lang.IllegalStateException: Multiple servlets map to path /*: git.service.http.MyServlet68360fb9[mapped:EMbedDED:null],io.dropwizard.jersey.setup.JerseyServletContainer-713e49c3[mapped:EMbedDED:null]
java.lang.IllegalStateException: Multiple servlets map to path /*: git.service.http.MyServlet68360fb9[mapped:EMbedDED:null],io.dropwizard.jersey.setup.JerseyServletContainer-713e49c3[mapped:EMbedDED:null]
下面是我的代码:
environment
.getApplicationContext()
.addServlet(
new ServletHolder(
new MyServlet(
injector.getInstance(HttpRepositoryResolver.class))),“/*“);
谁能帮我弄清楚?
解决方法
git.service.http.MyServlet
和 io.dropwizard.jersey.setup.JerseyServletContainer
均已注册到网址模式 /*
。
请记住,对于 Servlet,没有请求的可选处理之类的东西。
如果请求的资源与 url-pattern 匹配,它就会被发送到那个 Servlet,它必须处理那个请求,它不能“哦,不,不适合我,让别人来处理这个请求”。
我建议将 Jersey 放在特定的东西上,例如 /api/*
或 /rest/*
作为网址模式。