首页 > 解决方案 > java.lang.IllegalArgumentException:名为 [A] 和 [A] 的 servlet 都映射到不允许的 url 模式 [/testurl]

问题描述

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

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

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

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

java.lang.IllegalArgumentException:名为 [A] 和 [A] 的 servlet 都映射到不允许的 url 模式 [/XXXX]。

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

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

我已经看到了这个问题的其他答案,但是这些在这里不起作用,因为:

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

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

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

你知道我的设置可能有什么问题吗?它适用于我的同事,因此代码没有问题。

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

我最后一次尝试是清除和更新本地 .m2 存储库,但这也不起作用。

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

标签: javamaventomcatservlets

解决方案


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


推荐阅读