Spring MVC 3:为不存在的方法找到不明确的映射
Posted
技术标签:
【中文标题】Spring MVC 3:为不存在的方法找到不明确的映射【英文标题】:Spring MVC 3 : Ambiguous mapping found for a non existing method 【发布时间】:2014-06-21 01:23:04 【问题描述】:我有这个映射 /lists POST 请愿的“创建”方法。我做了一个重载方法“createEmpty()”来尝试一些东西,但后来因为它抛出了一个 org.springframework.beans.factory.BeanCreationException 来进行模糊映射而被删除。
问题是我删除了上述方法后,我仍然得到异常。
@Controller
public class ListsController
@RequestMapping(value = "/lists", method = RequestMethod.POST)
public @ResponseBody List create(@RequestBody List list)
return list;
信息:开发应用服务器现在正在运行 2014 年 5 月 4 日下午 4:21:34 com.google.apphosting.utils.jetty.JettyLogger 警告 警告:/:javax.servlet.UnavailableException:org.springframework.beans.factory.BeanCreationException:创建名为“org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0”的bean时出错:bean初始化失败;嵌套异常是 java.lang.IllegalStateException: Ambiguous mapping found。无法映射“listsController”bean 方法 公共 tacs.tp.list_sharer.domain.List tacs.tp.list_sharer.web.ListsController.createEmpty() to [/lists],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]: 已经有 'listsController' bean 方法 公共 tacs.tp.list_sharer.domain.List tacs.tp.list_sharer.web.ListsController.create(tacs.tp.list_sharer.domain.List) 映射。 2014 年 5 月 4 日下午 4:21:34 com.google.apphosting.utils.jetty.JettyLogger 警告 警告:/:javax.servlet.UnavailableException:org.springframework.beans.factory.BeanCreationException:创建名为“org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0”的bean时出错:bean初始化失败;嵌套异常是 java.lang.IllegalStateException: Ambiguous mapping found。无法映射“listsController”bean 方法 公共 tacs.tp.list_sharer.domain.List tacs.tp.list_sharer.web.ListsController.createEmpty() to [/lists],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]: 已经有 'listsController' bean 方法 public tacs.tp.list_sharer.domain.List tacs.tp.list_sharer.web.ListsController.create(tacs.tp.list_sharer.domain.List) 映射。
好像 createEmpty() 缓存在某处...
【问题讨论】:
你的ListController
中有createEmpty
方法吗?
当然不是。 mvn clean install 解决了这个问题。
【参考方案1】:
请尝试做: 1. 如果你使用的是 eclipse - Project -> Clean. 2. 如果您使用的是 maven,请在部署前尝试清理和/或安装项目。
我看到您正在使用 Jetty,也许这些链接将有助于解决您的问题:Cleaning up Jetty - Removing 'unnecessaries' thingsJetty runs old war altought mvn clean is run
【讨论】:
这不是答案,更像是评论。考虑提供一些真实的答案。 mvn clean 然后 mvn install 解决了这个问题。谢谢!【参考方案2】:我在两个不同的控制器中具有相同的 @RequestMapping 值,我从其中一个控制器中删除它并开始正常工作。
【讨论】:
以上是关于Spring MVC 3:为不存在的方法找到不明确的映射的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spring MVC 在 tomcat 中的 PATCH 方法
为不存在的文件解析相对路径(如 realpath)的最佳方法是啥?