Hi Raymond.

In our case, the client is privy to the domain objects - Java objects
(interfaces/classes) - used by the web service.  For example, locally the
client uses org.client.Patient throughout the application.  Before invoking
a web service the client converts org.client.Patient to
org.service.Patient(provided by service provider), and then invokes
the web service passing
org.service.Patient.

Migrating this code to Tuscany we're finding that SDO handles the outbound
by converting the Patient object to a String (I think).  The inbound doesn't
convert at all, but instead sends back null.

It would be cool if the binding layer was able to dynamically convert a Java
object to a schema type matching the package name and class name in the
WSDL.  This is the ultimate non-invasive approach.

It sounds as if the WS binding layer for both Axis2 and Celtix support only
SDO as of today.  If this is true, what are the steps to communicate with a
complex type web service?  My guess is:

1.) Generate SDO objects from WSDL using tuscany-sdo-plugin.

2.) Create a service component (@Service) that matches the web service's
method signatures.

3.) In the application scdl, import the WSDL into SDO
(<import.sdolocation="..."/>).  Although, I'm not sure exactly what
this does.

4.) In the application scdl, configure the service component with the
binding.ws.

5.) Within the client application, convert local Java objects to SDO object
using the Factory created in #1.

6.) Within the client application, locate the service via Tuscany context
and invoke web service proxy method passing in the SDO object.

How does that sound?

-Chris

Reply via email to