错误:
Caused by: java.lang.IllegalArgumentException: *The servlets named [client] and [servlet.com.ClientRedirect] are both mapped to the url-pattern [/servlet/ClientRedirect] which is not permitted*
at org.apache.tomcat.util.descriptor.web.WebXml.addServletMappingDecoded(WebXml.java:323)
at org.apache.tomcat.util.descriptor.web.WebXml.addServletMapping(WebXml.java:316)
at org.apache.catalina.startup.ContextConfig.processAnnotationWebServlet(ContextConfig.java:2389)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:2066)
at org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1952)
at org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1946)
at org.apache.catalina.startup.ContextConfig.processAnnotationsWebResource(ContextConfig.java:1946)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1153)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:775)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:299)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:94)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5105)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 8 more
原因:定义Servlet时注解@WebServlet(“/servlet/ClientRedirect”)已经默认了Servlet路径,在web.xml中继续配置会冲突。
解决方法:注释一个即可
/**
* Servlet implementation class ClientRedirect
*/
@WebServlet("/servlet/ClientRedirect")
public class ClientRedirect extends HttpServlet
<!-- ClientRedirect映射 -->
<servlet>
<servlet-name>client</servlet-name>
<servlet-class>servlet.com.ClientRedirect</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>client</servlet-name>
<url-pattern>/servlet/ClientRedirect</url-pattern>
</servlet-mapping>