java.lang.IllegalArgumentException : The servlets named [A] and [A] are both mapped to the url-pattern [/testurl] which is not permitted 异常

标签 java maven tomcat servlets

我希望有人能帮我解决这个问题:

我的 Eclipse(确切地说是 Spring Tool Suite 3)设置上有两个项目:

  • 我们自己的项目和我们的源代码。

  • 来自提供商的另一个项目,我们的项目将其引用为依赖项。

我们使用 Tomcat v8.5 服务器在本地执行应用程序。

一切正常,直到最近,当我执行 git pull 更新我的本地代码时,一切都搞砸了(我不确定我是否更改了其他内容)。 现在,当我尝试执行该应用程序时,出现以下错误(一切都正确编译和构建):

java.lang.IllegalArgumentException: The servlets named [A] and [A] are both mapped to the url-pattern [/XXXX] which is not permitted.

我没有打错字。错误消息提到同一个 servlet 两次,将其视为两个使用相同 url 模式的不同 servlet。

在搜索 servlet 时,我只能在下载到本地 .m2 存储库的 JAR 中找到它。 我的意思是,这不是我们的 servlet,它来自提供程序库。

我看过这个问题的其他答案,但这些答案在这里不起作用,因为:

1) 我没有两个 servlet 相互踩踏。只有一个。

2) 我无法检查 servlet 是否在 web.xml 和注释上定义,因为它不是我们的,但它适用于我的同事,所以它应该是正确的。

3) 如前所述,此 servlet 是从依赖项加载的,因此我什至无法尝试更改任何内容以尝试了解发生了什么。

您知道我的设置可能有什么问题吗? 它对我的同事来说工作正常,所以这不是代码的问题。

我已经从头开始删除和设置所有内容(删除 Tomcat 服务器除外);多次清理和更新项目,但我无法摆脱它。

我最后的尝试是清除和更新本地 .m2 存储库,但这也没有用。

非常欢迎任何提示或想法。

最佳答案

我认为您是在 web.xml 和注释中声明 servlet 映射,如果我没记错的话某些 tomcat 版本允许这样做。 你说它适用于你的同事,检查你们是否都有相同的 tomcat 版本。

关于java.lang.IllegalArgumentException : The servlets named [A] and [A] are both mapped to the url-pattern [/testurl] which is not permitted 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57379047/

相关文章:

java - 找不到自动发现服务

apache - Servlet 重定向不适用于 Apache Tomcat + Apache 服务器的组合

java - 当值在java/servlets中有空格时读取复选框的值

Tomcat 服务器上的 Java Servlet(找不到文件错误)

java - 提供依赖项和 JBOSS EAP 7

gwt - 在客户端使用来自 GWT 中另一个 Maven 模块的 java 对象

java - 默认 Java WebApp 的 Azure GIT 持续部署(使用默认 Tomcat)

java - 从 Java 应用程序监控 Tomcat 服务器

java - Easymock 调用 Autowiring 的对象方法

java - 更新 junit 在 @Rule 和 TestName 处出现编译错误