These are chat archives for spring-cloud/spring-cloud

6th
Mar 2018
Abhishek Dujari
@abshkd
Mar 06 2018 02:24

gateway doesn't work in a war or with servlets

Are you referring to a specific gateway or all gateways?

Spencer Gibb
@spencergibb
Mar 06 2018 05:44
Spring Cloud Gateway
Spencer Gibb
@spencergibb
Mar 06 2018 05:59
@abshkd :arrow_up:
Ali Shahbour
@shahbour
Mar 06 2018 07:18

I am trying to use @FeignClient to read from spring-data-rest project, I added @EnableHypermediaSupport(type = EnableHypermediaSupport.HypermediaType.HAL) to the client project and set the feignClient as below

@FeignClient(name = "common", path = "/operatorcode")
public interface OperatorCodeClient {

    @RequestMapping(method = RequestMethod.GET,value="/search/findByEnabledIsTrue")
    Resources<OperatorCode> findByEnabledIsTrue();

    @RequestMapping(method = RequestMethod.GET,value = "/")
    PagedResources<OperatorCode> findAll();

}

When invoking findAll I receive the metadata (Page size and Total Count) but the content and links are always empty .

If i add spring-boot-starter-data-restto the client project every thing work perfectly .
Is this a requirement ?

Nils Wild
@NilsWild
Mar 06 2018 13:40
Is there a utility to synchronize a method across multiple instances?
Mark Corkery
@KramKroc
Mar 06 2018 14:53

Hi folks, I posted yesterday about a problem I’ve encountered when jumping from Camden to Edgware.SR2 and our api-gateway. Our gateway uses a combination of RestTemplate + zuul routes. We have some ribbon configuration in place for some of those routes. After further testing I found that the RestTemplate calls were still working as expected, but the zuul routes were all having issues with RibbonLoadBalancingHttpClient as I pasted yesterday:

2018-03-05T16:15:36,766 traceId=cbf29614a3d887d3 spanId=b69050847775e0f5 [qtp808653065-32] WARN  o.s.c.n.z.f.p.SendErrorFilter : Error during filtering
com.netflix.zuul.exception.ZuulException: Failed to instantiate [org.springframework.cloud.netflix.ribbon.apache.RibbonLoadBalancingHttpClient]: Is it an abstract class?; nested exception is java.lang.InstantiationException: org.springframework.cloud.netflix.ribbon.apache.RibbonLoadBalancingHttpClient                                                                                   
        at org.springframework.cloud.netflix.zuul.util.ZuulRuntimeException.<init>(ZuulRuntimeException.java:33) ~[spring-cloud-netflix-core-1.4.3.RELEASE.jar!/:1.4.3.RELEASE]                                                                                                
        at org.springframework.cloud.netflix.zuul.filters.route.RibbonRoutingFilter.run(RibbonRoutingFilter.java:119) ~[spring-cloud-netflix-core-1.4.3.RELEASE.jar!/:1.4.3.RELEASE]

Today, I changed one configuration value and that was to set

ribbon.restclient.enabled=true

And now calls flow as expected.

The reason why we used ribbon in Camden was to get zone/service retry logic etc
I wondered if this type of exception is expected or what the migration path from using ribbon with retry is to the Http Client backed approach might look like?