Spring Cloud Netflix Feign无法正常工作

时间:2017-07-20 14:38:40

标签: spring-cloud netflix-eureka spring-cloud-netflix netflix-feign netflix-ribbon

尝试使用带有Eureka和功能区的Feign客户端 -

使用名为测试服务的Eureka注册服务。

能够如下成功使用Ribbon和Eureka -

@Autowired
private LoadBalancerClient loadBalancer;

public void getEmployee() throws RestClientException, IOException {

    ServiceInstance serviceInstance=loadBalancer.choose("test-service");

    String baseUrl=serviceInstance.getUri().toString();

    baseUrl=baseUrl+"/test";

    RestTemplate restTemplate = new RestTemplate();
    ResponseEntity<String> response=null;
    try{
        response=restTemplate.exchange(baseUrl,
                HttpMethod.GET, getHeaders(),String.class);

        }

这可以正常工作,包括负载平衡。

现在尝试用Feign替换RestTemplate,如下所示 -

@FeignClient(name="test-service")
public interface RemoteCallService {
    @RequestMapping(method=RequestMethod.GET, value="/test")
    public String resp();

}

按照以下方式进行假装调用 -

@Autowired
    private RemoteCallService loadBalancer;

    public void getEmployee() throws RestClientException, IOException {

        String data=loadBalancer.resp();

        }

但这不起作用。 Feign URL未正确形成。 在调试时,FeignClient具有以下值 -

HardCodedTarget(type = RemoteCallService,name = test-service, url = http://test-service

任何人都可以告诉我缺少什么。

由于

0 个答案:

没有答案