[ 
https://issues.apache.org/jira/browse/CXF-8286?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17116583#comment-17116583
 ] 

Konrad Windszus edited comment on CXF-8286 at 5/26/20, 10:12 AM:
-----------------------------------------------------------------

Thanks for the hint, but it seems that the CircuitBreaker is not usable right 
now for my context. I have only one address and need to wait for a certain time 
in case of service outages. That doesn't seem to be supported by the 
CircuitBreakerFailoverFeature as that will only disable certain endpoints if 
they are not available but does not implement any waiting in case there is only 
one remaining endpoint left which is "on". I opened CXF-8289 for that.


was (Author: kwin):
Thanks for the hint, but it seems that the CircuitBreaker is not usable right 
now for my context. I have only one address and need to wait for a certain time 
in case of service outages. That doesn't seem to be supported by the 
CircuitBreakerFailoverFeature as that will only disable certain endpoints if 
they are not available but does not implement any waiting in case there is only 
one remaining endpoint left which is "on". I will open a separate bug for that.

> AbstractStaticFailoverStrategy.getEndpoints() never returns anything for 
> JAX-RS clients (with RetryStrategy)
> ------------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-8286
>                 URL: https://issues.apache.org/jira/browse/CXF-8286
>             Project: CXF
>          Issue Type: Improvement
>    Affects Versions: 3.3.6, 3.2.13
>            Reporter: Konrad Windszus
>            Assignee: Andriy Redko
>            Priority: Major
>
> When creating a JAX-RS client like described in  
> https://cxf.apache.org/docs/jax-rs-failover.html with
> {code}
> JAXRSClientFactoryBean bean = new JAXRSClientFactoryBean();
> bean.setAddress(API_BASE_ADDRESS);
> FailoverFeature failoverFeature = new CircuitBreakerFailoverFeature();
> RetryStrategy retryStrategy = new RetryStrategy();
> retryStrategy.setMaxNumberOfRetries(3);
> failoverFeature.setStrategy(retryStrategy);
> bean.setFeatures(Collection.singletonList(failureFeature));
> WebClient webClient = bean.createWebClient();
>         
> T proxy = JAXRSClientFactory.fromClient(webClient, clazz);
> {code}
> The method 
> https://github.com/apache/cxf/blob/517b88cb2c293115e0dce1c1105f448e9dc21164/rt/features/clustering/src/main/java/org/apache/cxf/clustering/AbstractStaticFailoverStrategy.java#L133
>  always returns an empty list (due to the 
> https://github.com/apache/cxf/blob/517b88cb2c293115e0dce1c1105f448e9dc21164/rt/features/clustering/src/main/java/org/apache/cxf/clustering/AbstractStaticFailoverStrategy.java#L135
>  getting the empty list from 
> https://github.com/apache/cxf/blob/38582fbab7ca33b1383715f1f5094b9b46a0303f/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSServiceImpl.java#L112).
> Why is the endpoints/services not correctly set up for Jax RS clients for the 
> failover handling to work. What else do I  need to do here?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to