模糊的映射错误

时间:2016-05-05 17:10:44

标签: spring model-view-controller mapping ambiguous

我正在使用 JDK 1.8.0_60 Tomcat 6.0.44 上托管 Spring MVC项目IntelliJ 。我的整个团队运行我们的应用程序没有任何问题。在我的机器上,当我尝试从Git运行最新代码时,团队其他成员运行的代码相同,我收到此错误:

  

上下文初始化失败不明确的映射。无法映射'CartValidate'方法。

在同一个控制器中有2个CartValidate方法(一个POST,一个GET)和一个view方法似乎导致了这个问题。

如果我更改了这三种方法的请求映射(我不必更改方法名称,只需更改请求映射),那么它可以正常工作。

我在完整的代码库中搜索了请求映射值,并且它们不会出现在其他地方,所以我无法理解为什么原始请求映射会出现问题。原始请求映射为cart/validate.jsoncart/view.json

有没有人知道可能会发生什么?

以下是我需要更改请求映射以使代码运行的3种方法的代码:

@ResponseBody
@RequestMapping(value = "/cart/view.json", method = RequestMethod.GET, produces = "application/json", consumes = "application/json")
public Order view(@RequestParam(value = "orderId") Long orderId,
                   HttpServletRequest aRequest, HttpServletResponse aResponse) {

    Order order = orderService.orderGet(aRequest, aResponse, orderId);
    return order;
}

@ResponseBody
@RequestMapping(value = "/cart/validate.json", method = RequestMethod.POST, consumes = "application/json", produces = "application/json")
public OrderWeb CartValidate(@RequestBody OrderWeb aModel,
                          HttpServletRequest aRequest, HttpServletResponse aResponse) {

    String orderId = aModel.getOrderId().toString();
    OrderWeb order = orderService.orderValidatePost(aModel, orderId,
            aRequest, aResponse);

    return order;
}

@ResponseBody
@RequestMapping(value = "/cart/validate.json", method = RequestMethod.GET, consumes = "application/json", produces = "application/json")
public OrderWeb CartValidate(@RequestParam(value = "orderId", required = true) Long orderId,
                          HttpServletRequest aRequest, HttpServletResponse aResponse) {

    OrderWeb aModel = (OrderWeb) orderService.orderGet(aRequest, aResponse, orderId);
    OrderWeb order = orderService.orderValidatePost(aModel, orderId.toString(),
            aRequest, aResponse);
    return order;
}

0 个答案:

没有答案