2016-08-12 6 views
3

В настоящее время я просто проверяю, как использовать Fign как декларативный клиент REST в одном из моих проектов.spring boot feign клиент, получающий HTTP 404

Ниже Feign Client

@FeignClient(name = "SEARCHCABMS",configuration = AppFeignConfiguration.class) 
     public interface SearchCabMsClient { 

     @RequestMapping(value = "api/searchcab/locationcabtimedetail/search/getCabForLocationAfterTimeSlot", method = RequestMethod.GET) 
     String searchCabDetails(@PathVariable("fromDate") String fromDate, 
           @PathVariable("locationId") long locationId, 
           @PathVariable("isdeleted") byte isdeleted, 
           @PathVariable("hourforbooking")int hourforbooking); 
    } 

Этот интерфейс autowired в одном сервисе

@Autowired 
SearchCabMsClient restService; 

Добавлено EnableFeignClients в SpringBootApplication

@EnableFeignClients(basePackages = {"com.gp.cabbooking.services.feign"}) 

зависимостями, родительский и т.д. в pom.xml

<parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.3.5.RELEASE</version> 
</parent> 

зависимость

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-web</artifactId> 
</dependency> 

<dependency> 
    <groupId>org.springframework.cloud</groupId> 
    <artifactId>spring-cloud-starter-eureka</artifactId> 
</dependency> 

<dependency> 
    <groupId>org.springframework.cloud</groupId> 
    <artifactId>spring-cloud-starter-ribbon</artifactId> 
</dependency> 

<dependency> 
    <groupId>org.springframework.cloud</groupId> 
    <artifactId>spring-cloud-starter-feign</artifactId> 
</dependency> 

я смог увидеть во время отладки весной создать прокси-сервер для моего симулировать клиента я попытался назвать эту услугу с помощью ленты и она работает штраф но когда я выполнить метод определения в моем личном клиенте. Я получаю feign.FeignException: состояние 404 чтение

feign.FeignException: status 404 reading SearchCabMsClient#searchCabDetails(String,long,byte,int) 
    at feign.FeignException.errorStatus(FeignException.java:62) ~[feign-core-8.16.2.jar:8.16.2] 
    at feign.codec.ErrorDecoder$Default.decode(ErrorDecoder.java:91) ~[feign-core-8.16.2.jar:8.16.2] 
    at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:134) ~[feign-core-8.16.2.jar:8.16.2] 
    at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:76) ~[feign-core-8.16.2.jar:8.16.2] 
    at feign.hystrix.HystrixInvocationHandler$1.run(HystrixInvocationHandler.java:97) ~[feign-hystrix-8.16.2.jar:8.16.2] 
    at com.netflix.hystrix.HystrixCommand$1.call(HystrixCommand.java:293) ~[hystrix-core-1.5.3.jar:1.5.3] 
    at com.netflix.hystrix.HystrixCommand$1.call(HystrixCommand.java:289) ~[hystrix-core-1.5.3.jar:1.5.3] 
    at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:46) ~[rxjava-1.1.5.jar:1.1.5] 
    at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35) ~[rxjava-1.1.5.jar:1.1.5] 
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50) ~[rxjava-1.1.5.jar:1.1.5] 
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) ~[rxjava-1.1.5.jar:1.1.5] 
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50) ~[rxjava-1.1.5.jar:1.1.5] 
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30) ~[rxjava-1.1.5.jar:1.1.5] 
    at rx.Observable.unsafeSubscribe(Observable.java:8460) ~[rxjava-1.1.5.jar:1.1.5] 
    at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:51) ~[rxjava-1.1.5.jar:1.1.5] 
    at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35) ~[rxjava-1.1.5.jar:1.1.5] 
    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:50) ~[rxjava-1.1.5.jar:1.1.5] 

ответ

0

Определили вы URL-адрес службы вы достигаете использования этого симулировать клиента? 404 - проблема не найдена.

@FeignClient(name = "SEARCHCABMS", url = "${SEARCHCABMS.service.url}", 
    configuration = ClientConfiguration.class) 
    public interface SearchCabMsClient { 

    } 

Наличие контрольного держателя в URL-адресе помогает его экстернализировать и настраивать для каждой среды.

Если вы настроили URL-адрес, дважды проверьте остальную конечную точку.

Смежные вопросы