Spring boot 外部客户端子域:映射不明确

Spring boot 外部客户端子域:映射不明确,spring-boot,spring-cloud-feign,Spring Boot,Spring Cloud Feign,我使用的是Spring Boot2.0.3。发布版和openFeign: org.springframework.cloud 春季云启动程序 我在我的项目中申报了两个外国客户: @FeignClient(name=“applereceptiptsandboxfeignclient”, url=”https://sandbox.itunes.apple.com", 配置=Conf.class) @请求映射(products=“application/json”,consumes=“applic

我使用的是Spring Boot
2.0.3。发布版
和openFeign:


org.springframework.cloud
春季云启动程序
我在我的项目中申报了两个外国客户:

@FeignClient(name=“applereceptiptsandboxfeignclient”,
url=”https://sandbox.itunes.apple.com",
配置=Conf.class)
@请求映射(products=“application/json”,consumes=“application/json”)
公共接口AppleReceiptSandboxFeignClient{
@RequestMapping(value=“/verifyreceive”,method=RequestMethod.POST)
AppleReceiptResponseDTO sandboxVerifyReceipt(@RequestBody AppleReceiptRequestDTO dto);
}
@FeignClient(name=“applereceptfeignclient”,
url=”https://buy.itunes.apple.com")
@请求映射(products=“application/json”,consumes=“application/json”)
公共接口AppleReceiptFeignClient{
@RequestMapping(value=“/verifyreceive”,method=RequestMethod.POST)
AppleReceiptResponseDTO productionVerifyReceipt(@RequestBody AppleReceiptRequestDTO dto);
}
我的问题是,即使基本URL和名称不相同,似乎也会认为外部客户端存在冲突

java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'com.myproject.central.client.AppleReceiptSandboxFeignClient' method 
public abstract com.myproject.central.client.dto.AppleReceiptResponseDTO com.myproject.central.client.AppleReceiptSandboxFeignClient.sandboxVerifyReceipt(com.myproject.central.client.dto.AppleReceiptRequestDTO)
to {[/verifyReceipt],methods=[POST],consumes=[application/json],produces=[application/json]}: There is already 'com.myproject.central.client.AppleReceiptFeignClient' bean method
public abstract com.myproject.central.client.dto.AppleReceiptResponseDTO com.myproject.central.client.AppleReceiptFeignClient.productionVerifyReceipt(com.myproject.central.client.dto.AppleReceiptRequestDTO) mapped.
即使这个映射错误是意外的,我也愿意采取变通办法

很明显,我不能在同一个外部客户机中声明两个端点,因为子域不同,或者我遗漏了什么


我的问题是:如果有最简单的解决方法(如果有的话),只使用外文客户端?

当您使用
@RequestMapping
注释接口或类时,即使您有
@FeignClient
注释,Spring也会注册处理程序。您可以通过从接口中删除注释并仅在方法上使用它来解决此问题

@FeignClient(name=“applereceptiptsandboxfeignclient”,
url=”https://sandbox.itunes.apple.com",
配置=Conf.class)
公共接口AppleReceiptSandboxFeignClient{
@RequestMapping(value=“/verifyreceive”,method=RequestMethod.POST,products=“application/json”,consumes=“application/json”,pro)
AppleReceiptResponseDTO sandboxVerifyReceipt(@RequestBody AppleReceiptRequestDTO dto);
}
@FeignClient(name=“applereceptfeignclient”,
url=”https://buy.itunes.apple.com")
公共接口AppleReceiptFeignClient{
@RequestMapping(value=“/verifyreceive”,method=RequestMethod.POST,products=“application/json”,consumes=“application/json”)
AppleReceiptResponseDTO productionVerifyReceipt(@RequestBody AppleReceiptRequestDTO dto);
}