我正在使用 JDK 1.8.0_60 在 Tomcat 6.0.44 上托管 Spring MVC项目IntelliJ 。我的整个团队运行我们的应用程序没有任何问题。在我的机器上,当我尝试从Git运行最新代码时,团队其他成员运行的代码相同,我收到此错误:
上下文初始化失败不明确的映射。无法映射'CartValidate'方法。
在同一个控制器中有2个CartValidate
方法(一个POST,一个GET)和一个view
方法似乎导致了这个问题。
如果我更改了这三种方法的请求映射(我不必更改方法名称,只需更改请求映射),那么它可以正常工作。
我在完整的代码库中搜索了请求映射值,并且它们不会出现在其他地方,所以我无法理解为什么原始请求映射会出现问题。原始请求映射为cart/validate.json
和cart/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;
}