为了账号安全,请及时绑定邮箱和手机立即绑定

Web.xml 未正确编译

Web.xml 未正确编译

SMILET 2021-09-03 17:06:05
我最近尝试从 java7-java8 转换 Eclipse、Google Appengine 项目,因为 GAE 已停止支持 java7(或将在不久的将来支持)。该项目在开始转换之前运行良好。尝试在本地运行项目时,我现在收到此错误:    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">我已经两次和三次检查 /api/add-batch-shelfsurvey 路径在 web.xml 中是唯一的,但我仍然收到此错误。错误消息中提到的 servlet 发生了变化,但它们都没有多个映射到一个路径。我发现这些线程看起来相似但实际上并不相关: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>
查看完整描述

2 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

我设法让项目在本地主机上运行并上传并在 Google App Engine 上运行。不幸的是,我不知道到底是什么问题。这些是我采取的步骤: - 从 web.xml 文件中的所有内容中删除 /*。- 在 2.5 xsd 和 3.1 xsd 版本之间多次更改,每次都在 localhost 上运行项目。- 改回 2.5 xsd 并全部改回以 /* 结尾

然后项目在 localhost 和 appengine 上编译并运行良好。如果有人知道更多关于为什么会发生这种情况的信息,请告诉我。


查看完整回答
反对 回复 2021-09-03
?
catspeake

TA贡献1111条经验 获得超0个赞

这是因为/api/add-batch-shelfsurvey 在尝试检查<servlet-mapping> web.xml 中的所有部分之前可能已经注册 了路径 ,如果您有任何 @WebServlet注释,请检查urlPatterns={"..."}

如果您同时有两个定义,应用服务器将不知道哪个是正确的。


查看完整回答
反对 回复 2021-09-03
  • 2 回答
  • 0 关注
  • 218 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号