Good Day Folks,

Hopefully you can help me.

I am consuming a wsdl that was incorrectly defined and I need to come up
with a workaround in CXF.

The server side methods return a "serialized" Dom. They used some mapping in
axis1 to map the class they are returning to a class called XmlElement,
which is an empty class.

The end result is that the WSDL shows the methods returning an XmlElement
class looking like this:

------------------------------
------------------------
<complexType name="XmlElement">
<sequence/>
</complexType>
------------------------------------------------------

The CXF code generated from the WSDL correctly creates an XmlElement class
that is empty:

------------------------------------------------------
package com.tt.ws.cxf;

public class XmlElement {

}
------------------------------------------------------

So, when the method getLocations() is invoked it correctly returns the
following response:

------------------------------------------------------
         <getLocationsReturn xsi:type="ns1:XmlElement" xmlns:ns1="
http://api.service.timecommerce.timetrade.com/";>
            <Locations LicenseeId="997" UserId="1" xmlns="">
               <Location>
                  <LocationId>1</LocationId>
                  <LocationName>JMochel Test Site</LocationName>
                  <LocationURL>jmochel</LocationURL>
               </Location>
            </Locations>
         </getLocationsReturn>
------------------------------------------------------

The client code returns the empty XmlElement object.

The official WSDL willl not be changed immediately so I need to come up with
a way of allowing the CXF code to take the incoming XML returned and
generate a DOM Element or equivalent.

After digging around I get the hint that some combination of the following
will get me going in the direction I want

1. The xsd:any schema element (hand modify the WSDL and regenerate the code
so that it treats XmlElement as containing xsd:any)

2. Write custom unmarshalling code and figure out how to hook it in.

3. Playing with the JAXBContext

Any suggestions for the cleanest solution to this ?

Thank you,

Jim Mochel

Reply via email to