1 异常场景再现


  • 今天写代码,又出Bug了!
    Spring MVC报错: java.lang.IllegalStateException: Ambiguous mapping. Cannot map
  • 看看这两个方法的注解参数
    Spring MVC报错: java.lang.IllegalStateException: Ambiguous mapping. Cannot map

1 绝大多数的原因

该控制器下有两个相同的url,导致spring容器不知道该url映射到哪个方法,在程序源挑错指南网站高票答案也可看出:

Spring MVC报错: java.lang.IllegalStateException: Ambiguous mapping. Cannot map

2 隐藏Bug !!!

在@RequestMapping注解中使用value,而非name!!

Spring MVC报错: java.lang.IllegalStateException: Ambiguous mapping. Cannot map

看来即使源码中说他们其实是一个人的两个名字而已,但实质上是真正的同卵双生的双胞胎!!!

Spring MVC报错: java.lang.IllegalStateException: Ambiguous mapping. Cannot map

3 解决Bug

于是我们将其中至少一个改value,应用又能正常启动!

Spring MVC报错: java.lang.IllegalStateException: Ambiguous mapping. Cannot map

4 总结


  • 注意controller映射,勿出现重复映射方法
  • 映射注解参数全部使用value,而非name

StackOveFlow链接