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.
>
>

Reply via email to