使用 extends 子句时发现映射不明确

Ambiguous mapping found when I use extends clause

我有一个 CustomerControllerCustomerCardController class 扩展 CrudMethods class.

我选择这样,因为这两个控制器使用相同的方法(getFileCustomer() 是其中之一)。而且我认为最好使用继承来保存代码行。

客户控制器

@Controller
public class CustomerController extends CrudMethods {
...

CustomerCardController

@Controller
public class CustomerCardController extends CrudMethods{
...

CrudMethos

@Controller
public abstract class CrudMethods {

@RequestMapping("getFileCustomer")
@ResponseBody
public String getFileCustomer() {
...

当我 运行 时,GlassFish 给我错误:

HTTP Status 500 - Internal Server Error type Exception report

message: Internal Server Error

description: The server encountered an internal error that prevented it from fulfilling this request.

exception:

javax.servlet.ServletException: Servlet.init() for servlet dispatcher threw exception

root cause: Ambiguous mapping found

问题是@RequestMapping 和@ResponseBody 注释。

事实上,如果我删除它们,应用程序就会启动。

但我需要这些注释。因为,@RequestMapping 和@ResponseBody 在应用程序运行 时被Ajax 调用使用。

两个控制器中都使用了 getFileCustomer()。

如何解决?

谢谢

@RequestMapping("getFileCustomer") 此请求映射存在于 CustomerCardControllerCustomerController class 中,因为它们扩展了具有此映射的相同 class。所以你有相同请求映射的重复条目。