Я недавно пытался преобразовать Eclipse, Google Appengine Project из java7-java8, так как GAE прекратил поддерживать java7 (или сделает это в ближайшем будущем).
Проект работал нормально до начала преобразования. Теперь я получаю эту ошибку при попытке запустить проект локально:
java.lang.IllegalStateException: Multiple servlets map to path: /api/add-batch-shelfsurvey: ApiShelfSurveyBatchServlet,com.imobdev.figjam.ApiShelfSurveyBatchServlet
Это запись в web.xml для этого сервлета:
<servlet>
<servlet-name>ApiShelfSurveyBatchServlet</servlet-name>
<servlet-class>com.imobdev.figjam.ApiShelfSurveyBatchServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ApiShelfSurveyBatchServlet</servlet-name>
<url-pattern>/api/add-batch-shelfsurvey</url-pattern>
</servlet-mapping>
Это начало файла web.xml:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
Я дважды и трижды проверил / api / add-batch-shelfsurvey путь уникален в web.xml, но я все еще получаю эту ошибку.
Сервлет, упомянутый в сообщении об ошибке, изменяется, но ни один из них не имеет нескольких сопоставлений с одним путем.
Я нашел эти темы, которые кажутся похожими, но на самом деле не связаны между собой:
https://github.com/dropwizard/dropwizard/issues/2107
https://bugs.eclipse.org/bugs/show_bug.cgi?id=479865
Я не знаю, имеет ли это отношение, но это мой файл appengine-web.xml:
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<threadsafe>true</threadsafe>
<url-stream-handler>urlfetch</url-stream-handler>
<system-properties>
<property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
<property name="appengine.file.encoding" value="US-ASCII"/>
</system-properties>
<sessions-enabled>true</sessions-enabled>
<runtime>java8</runtime>
</appengine-web-app>