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

1 异常场景再现

  • 今天写代码,又出Bug了!

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

  • 看看这两个方法的注解参数

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

1 绝大多数的原因

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

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

2 隐藏Bug !!!

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

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

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


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

3 解决Bug

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

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

4 总结

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

StackOveFlow链接

上一篇:如何设计一个牛掰的大型项目架构?


下一篇:【数道云大数据】Hadoop大数据技术有什么市场价值?2019年Hadoop大数据技术7大应用领域