13.9.11. Use XStream to Populate an Object Graph

Procedure 13.4. Task

  1. Configure XStream on an action:
    <action name="soapui-client-action"  class="org.jboss.soa.esb.actions.soap.SOAPClient">
        <property name="wsdl"  value="http://localhost:18080/acme/services/RetailerService?wsdl"/>
        <property name="operation" value="GetOrder"/>
        <property name="get-payload-location" value="get-order-params" />
        <property name="set-payload-location" value="get-order-response" />
        <property name="responseXStreamConfig">
            <alias name="customerOrder" class="com.acme.order.Order"         
                namespace="http://schemas.acme.com/services/CustomerOrder.xsd" />
            <alias name="orderheader" class="com.acme.order.Header" 
                namespace="http://schemas.acme.com/services/CustomerOrder.xsd" />
            <alias name="item" class="com.acme.order.OrderItem" 
                namespace="http://schemas.acme.com/services/CustomerOrder.xsd" />
        </property>
    </action>
    In the above example, there is also an example of how to specify non-default named locations for the request parameters Map and response object instance.
  2. Specify any field name mappings and XStream annotated classes:
    <property name="responseXStreamConfig">
        <fieldAlias name="header" class="com.acme.order.Order" fieldName="headerFieldName" />
        <annotation class="com.acme.order.Order" />
    </property>
    Field mappings can be used to map XML elements onto Java fields on occasions when the local name of the element does not correspond to the field name in the Java class.