名为[create_subscription]和[servlet.create]的servlet都映射到url-pattern [/ create],这是不允许的

Sua*_*guo 4 tomcat servlets war

我在JDK 7中使用Tomcat 7和Eclipse来创建这个简单的servlet应用程序.但是当我将war文件复制到tomcat时,我无法启动它并得到此错误:

名为[create_subscription]和[servlet.create]的servlet都映射到url-pattern [/ create],这是不允许的

web.xml是:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>CC</display-name>
  <welcome-file-list>
  <welcome-file>index.html</welcome-file>
  <welcome-file>index.htm</welcome-file>
  <welcome-file>index.jsp</welcome-file>
  <welcome-file>default.html</welcome-file>
  <welcome-file>default.htm</welcome-file>
  <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>

<servlet>
  <servlet-name>create_subscription</servlet-name>
  <servlet-class>servlet.create</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>create_subscription</servlet-name>
  <url-pattern>/create</url-pattern>
</servlet-mapping>

</web-app>
Run Code Online (Sandbox Code Playgroud)

Kiw*_*tin 9

如果在web.xml和注释中都声明了相同的映射,则会在更高版本的Tomcat中获得此精确错误.

  • 注释似乎确实是原因.如果您使用STS进行开发,则会将url模式作为注释放在类之上.刚刚从web.xml中删除了<servlet-mapping>部分,现在工作正常. (2认同)