我最近嘗試從 java7-java8 轉(zhuǎn)換 Eclipse、Google Appengine 項目,因為 GAE 已停止支持 java7(或?qū)⒃诓痪玫膶碇С郑?。該項目在開始轉(zhuǎn)換之前運行良好。嘗試在本地運行項目時,我現(xiàn)在收到此錯誤: java.lang.IllegalStateException: Multiple servlets map to path: /api/add-batch-shelfsurvey: ApiShelfSurveyBatchServlet,com.imobdev.figjam.ApiShelfSurveyBatchServlet這是該 servlet 的 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">我已經(jīng)兩次和三次檢查 /api/add-batch-shelfsurvey 路徑在 web.xml 中是唯一的,但我仍然收到此錯誤。錯誤消息中提到的 servlet 發(fā)生了變化,但它們都沒有多個映射到一個路徑。我發(fā)現(xiàn)這些線程看起來相似但實際上并不相關(guān):https : //github.com/dropwizard/dropwizard/issues/2107 https://bugs.eclipse.org/bugs/show_bug.cgi?id=479865我不知道它是否相關(guān),但這是我的 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>
2 回答

莫回?zé)o
TA貢獻(xiàn)1865條經(jīng)驗 獲得超7個贊
我設(shè)法讓項目在本地主機上運行并上傳并在 Google App Engine 上運行。不幸的是,我不知道到底是什么問題。這些是我采取的步驟: - 從 web.xml 文件中的所有內(nèi)容中刪除 /*。- 在 2.5 xsd 和 3.1 xsd 版本之間多次更改,每次都在 localhost 上運行項目。- 改回 2.5 xsd 并全部改回以 /* 結(jié)尾
然后項目在 localhost 和 appengine 上編譯并運行良好。如果有人知道更多關(guān)于為什么會發(fā)生這種情況的信息,請告訴我。

catspeake
TA貢獻(xiàn)1111條經(jīng)驗 獲得超0個贊
這是因為/api/add-batch-shelfsurvey
在嘗試檢查<servlet-mapping>
web.xml 中的所有部分之前可能已經(jīng)注冊 了路徑 ,如果您有任何 @WebServlet
注釋,請檢查urlPatterns={"..."}
如果您同時有兩個定義,應(yīng)用服務(wù)器將不知道哪個是正確的。
添加回答
舉報
0/150
提交
取消