Hi Eoghan,
Seems like my previous reply to your post didn't get sent.
I tried it by removing the id attribute and still get the same result that
is the assertion below still fails.
> AuthenticationPortType proxy = new
> AuthenticationClusteredWebService(getWSDL()).getAuthenticationPrimaryPortType()
>
> ConduitSelector conduitSelector =
> ClientProxy.getClient(proxy).getConduitSelector();
> assertTrue(FailoverTargetSelector.class.isInstance(conduitSelector));
I don't know whether it's because I'm getting a specific proxy i.e. calling
new
AuthenticationClusteredWebService(getWSDL()).getAuthenticationPrimaryPortType()
is there some sort of generic getPortType method I should be using i.e.
something like:
new AuthenticationClusteredWebService(getWSDL()).getAuthenticationPortType()
to get the failover setup invoked?
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-tp27703526p27713468.html
Sent from the cxf-user mailing list archive at Nabble.com.