[
https://issues.apache.org/jira/browse/CXF-8286?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17109562#comment-17109562
]
Andriy Redko edited comment on CXF-8286 at 5/17/20, 4:32 PM:
-------------------------------------------------------------
[~kwin] as per documentation [1], you have to provide the addresses (through
strategy):
```
FailoverFeature failoverFeature = new CircuitBreakerFailoverFeature();
List<String> alternateAddresses = new ArrayList<String>();
// addresses are alternate addresses provided at start-up
for (String s : address) {
alternateAddresses.add(s);
}
SequentialStrategy strategy = new SequentialStrategy();
strategy.setAlternateAddresses(alternateAddresses);
feature.setStrategy(strategy);
```
{{[1]
[https://cxf.apache.org/docs/jax-rs-failover.html#JAX-RSFailover-CircuitBreakersFailover]}}
was (Author: reta):
[~kwin] as per documentation [1], you have to provide the addresses (through
strategy):
FailoverFeature failoverFeature = new CircuitBreakerFailoverFeature();
List<String> alternateAddresses = new ArrayList<String>();
// addresses are alternate addresses provided at start-up
for (String s : address) \{
alternateAddresses.add(s);
}
SequentialStrategy strategy = new SequentialStrategy();
strategy.setAlternateAddresses(alternateAddresses);
feature.setStrategy(strategy);
{{}}
{{[1]
https://cxf.apache.org/docs/jax-rs-failover.html#JAX-RSFailover-CircuitBreakersFailover}}
> 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
> Reporter: Konrad Windszus
> 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)