Ambiguous mapping controler类实现接口的requestmapping 报错 Ambiguous mapping

tomatoFIREegg 2020-12-18 10:25:47
在使用feign过程中遇到一个问题 重复url

如果在Controller的父接口方法中写了@RequestMapping,在Controller实现的该方法上注解@controller
报错 Ambiguous mapping 。

问题关键是:我用的idea启动报错 同事用的eclipse启动没问题。这个就很费解

问题代码:


//这个是feign分离api 的公共接口
@RequestMapping("/customer")
public interface FinApi {
* 新增
@RequestMapping("/add")
Result<?> add(@RequestBody FinDto finDto) throws Exception;}

//如下是feign服务端代码
@RestController
public class FinController implements FinApi {
@Override
@Transactional
public Result<?> add(@RequestBody FinConsDto finConsDto) throws Exception {
//执行
return null;

}}


启动报错:

java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'com.customer.controller.FinController' method
public com.gss.framework.model.Result<?> com.customer.controller.FinController.add(com.dto.FinDto) throws java.lang.Exception
to { /customer/add}: There is already 'finController' bean method



解决:

自己启动一个注解 @Paichu

@Component
public class MyWebMvcRegistrations implements WebMvcRegistrations {

@Override
public RequestMappingHandlerMapping getRequestMappingHandlerMapping() {
return new FeignRequestMappingHandlerMapping();
}

private static class FeignRequestMappingHandlerMapping extends RequestMappingHandlerMapping {
@Override
protected boolean isHandler(Class<?> beanType) {
return super.isHandler(beanType) && !AnnotatedElementUtils.hasAnnotation(beanType, Paichu.class);
}
}
}



在解决的过程中查的几个帖子

Spring Mvc Controller类的方法上的@RequestMapping写在接口方法上,然后Controller继承接口并实现方法,@RequestMapping一样会生效

Controller类的方法上的RequestMapping一定要写在Controller类里吗?
Java | 大专栏
...全文
1301 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tomatoFIREegg 2020-12-18
  • 打赏
  • 举报
回复
主要想问问大神有没有遇到类似问题 然后 idea和eclipse的区别是怎么造成的
KeepSayingNo 2020-12-18
  • 打赏
  • 举报
回复
你全局搜下 customer,是不是别的地方也有这个路径

51,411

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧