Ok I've just upgraded my jars to 2.2.6 and still getting the assertion
failure.

Does anyone have a working example of a client that implements failover that
I could maybe take a look at to ensure I'm doing the right thing?

I tried following this example that I've seen for FUSE
http://www.iona.com/support/docs/artix/5.0/deploy/java/wwhelp/wwhimpl/js/html/wwhelp.htm
to setup static failover, so I think I've set things up correctly already.



LTay wrote:
> 
> Sorry I forgot to mention I'm currently using cxf 2.1.3 but as I
> understand it failover should already be available in that version. Please
> let me know if it's not.. I guess if I don't get anywhere I'll have to try
> and upgrade to the latest version to see if that fixes my issue.
> 
> 
> Eoghan Glynn-4 wrote:
>> 
>> Lesley,
>> 
>> Try it without the id attribute being set on your <jaxws:client> beans,
>> i.e.
>> 
>>   <jaxws:client name="{
>> http://www.test.com/Authentication}AuthenticationPrimaryPortType<http://www.test.com/Authentication%7DAuthenticationPrimaryPortType>
>> "
>> createdFromAPI="true">
>>        <jaxws:features>
>>            <clustering:failover>
>>                <clustering:strategy>
>>                    <ref bean="Random"/>
>>                </clustering:strategy>
>>            </clustering:failover>
>>        </jaxws:features>
>>    </jaxws:client>
>> 
>>    <jaxws:client name="{
>> http://www.test.com/Authentication}AuthenticationSecondaryPortType<http://www.test.com/Authentication%7DAuthenticationSecondaryPortType>
>> "
>> createdFromAPI="true">
>>        <jaxws:features>
>>            <clustering:failover>
>>                <clustering:strategy>
>>                    <ref bean="Random"/>
>>                </clustering:strategy>
>>            </clustering:failover>
>>        </jaxws:features>
>>    </jaxws:client>
>> 
>>    <jaxws:client name="{
>> http://www.test.com/Authentication}AuthenticationTertiaryPortType<http://www.test.com/Authentication%7DAuthenticationTertiaryPortType>
>> "
>> createdFromAPI="true">
>>        <jaxws:features>
>>            <clustering:failover>
>>                <clustering:strategy>
>>                    <ref bean="Random"/>
>>                </clustering:strategy>
>>            </clustering:failover>
>>        </jaxws:features>
>>    </jaxws:client>
>> </beans>
>> 
>> 
>> Cheers,
>> Eoghan
>> 
>> 
>> On 23 February 2010 13:46, LTay <[email protected]> wrote:
>> 
>>>
>>> Hi there,
>>>
>>> Hoping someone can shed some light on this. I'm trying to use the
>>> failover
>>> feature on CXF but have not been able to get it working.
>>>
>>> I've set up a cxf-client.xml which contains the failover setup:
>>>
>>> <?xml version="1.0" encoding="UTF-8"?>
>>> <beans xmlns="http://www.springframework.org/schema/beans";
>>>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>>>       xmlns:cxf="http://cxf.apache.org/core";
>>>       xmlns:jaxws="http://cxf.apache.org/jaxws";
>>>       xmlns:clustering="http://cxf.apache.org/clustering";
>>>       xsi:schemaLocation="http://cxf.apache.org/core
>>>          http://cxf.apache.org/schemas/core.xsd
>>>          http://cxf.apache.org/jaxws
>>>          http://cxf.apache.org/schemas/jaxws.xsd
>>>          http://www.springframework.org/schema/beans
>>>          http://www.springframework.org/schema/beans/spring-beans.xsd";>
>>>
>>>        <import resource="classpath:META-INF/cxf/cxf.xml" />
>>>        <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"
>>> />
>>>        <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
>>>
>>>    <bean id="Random" class="org.apache.cxf.clustering.RandomStrategy"/>
>>>
>>>    <jaxws:client id="AuthenticationPrimaryPortType"
>>> name="{http://www.test.com/Authentication}AuthenticationPrimaryPortType<http://www.test.com/Authentication%7DAuthenticationPrimaryPortType>
>>> "
>>> createdFromAPI="true">
>>>        <jaxws:features>
>>>            <clustering:failover>
>>>                <clustering:strategy>
>>>                    <ref bean="Random"/>
>>>                </clustering:strategy>
>>>            </clustering:failover>
>>>        </jaxws:features>
>>>    </jaxws:client>
>>>
>>>    <jaxws:client id="AuthenticationSecondaryPortType"
>>> name="{http://www.test.com/Authentication}AuthenticationSecondaryPortType<http://www.test.com/Authentication%7DAuthenticationSecondaryPortType>
>>> "
>>> createdFromAPI="true">
>>>        <jaxws:features>
>>>            <clustering:failover>
>>>                <clustering:strategy>
>>>                    <ref bean="Random"/>
>>>                </clustering:strategy>
>>>            </clustering:failover>
>>>        </jaxws:features>
>>>    </jaxws:client>
>>>
>>>    <jaxws:client id="AuthenticationTertiaryPortType"
>>> name="{http://www.test.com/Authentication}AuthenticationTertiaryPortType<http://www.test.com/Authentication%7DAuthenticationTertiaryPortType>
>>> "
>>> createdFromAPI="true">
>>>        <jaxws:features>
>>>            <clustering:failover>
>>>                <clustering:strategy>
>>>                    <ref bean="Random"/>
>>>                </clustering:strategy>
>>>            </clustering:failover>
>>>        </jaxws:features>
>>>    </jaxws:client>
>>> </beans>
>>>
>>>
>>> I've got the clustered service set up in the wsdl as well:
>>>
>>> <service name="AuthenticationClusteredWebService">
>>>        <port name="AuthenticationPrimaryPortType"
>>> binding="AUTH-SCENARIO:AuthenticationWebService">
>>>                <SOAP:address location="https://server1"/>
>>>        </port>
>>>        <port name="AuthenticationSecondaryPortType"
>>> binding="AUTH-SCENARIO:AuthenticationWebService">
>>>                <SOAP:address location="https://server2"/>
>>>        </port>
>>>        <port name="AuthenticationTertiaryPortType"
>>> binding="AUTH-SCENARIO:AuthenticationWebService">
>>>                <SOAP:address location="https://server3"/>
>>>        </port>
>>> </service>
>>>
>>> But when I test the failover by taking down the service at server1, I
>>> get a
>>> SocketConnectionException complaining of a connection timeout. It
>>> doesn't
>>> try to use the other port types.
>>>
>>> I also noticed that by running this to assert that the failover feature
>>> does
>>> get set up, the assertion below returns false. Instead the
>>> conduitSelector
>>> is of type UpfrontConduitSelector:
>>>
>>> AuthenticationPortType proxy = new
>>>
>>> AuthenticationClusteredWebService(getWSDL()).getAuthenticationPrimaryPortType()
>>>
>>> ConduitSelector conduitSelector =
>>> ClientProxy.getClient(proxy).getConduitSelector();
>>> assertTrue(FailoverTargetSelector.class.isInstance(conduitSelector));
>>>
>>> So for some reason the failover feature in my cxf-client.xml gets
>>> ignored.
>>>
>>>
>>> If anyone's got any ideas that would be great. I've tried to follow the
>>> system testing class I found at:
>>>
>>> http://svn.apache.org/viewvc/cxf/trunk/systests/uncategorized/src/test/java/org/apache/cxf/systest/clustering/FailoverTest.java
>>> and how the failover.xml is setup. Maybe I'm just missing something
>>> else..
>>>
>>>
>>> Thanks,
>>> Lesley
>>>
>>> --
>>> View this message in context:
>>> http://old.nabble.com/Failover-config-for-cxf-seems-to-get-ignored-tp27703526p27703526.html
>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>
>>>
>> 
>> 
> 
> 

-- 
View this message in context: 
http://old.nabble.com/Failover-config-for-cxf-seems-to-get-ignored-tp27703526p27714085.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to