在使用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 | 大專欄
uj5u.com熱心網友回復:
主要想問問大神有沒有遇到類似問題 然后 idea和eclipse的區別是怎么造成的uj5u.com熱心網友回復:
你全域搜下 customer,是不是別的地方也有這個路徑轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/236703.html
標籤:Java相關
上一篇:求助大佬解決scoket例外問題
