Hi,

I sent a prototype to Rick Rineholt last week. Rick, do you think it's OK to
check it into the sandbox so that it can be shared as the starting point for
the project structure?

In the current Axis1.x integration, we wholly control the creation of SOAP
envelopes from Tuscany by serialization/deserialization the SDO DataObject
(representing the input/output messages) to/from SOAP element. As we
discussed before, we want to levarage the Axis2 databinding, i.e., Tuscany
will provide/register SDO DataObject serializer/deserializer against the ADB
and have Axis2 take care of the rest of the WebService stack.

Starting with the "externalService" path first should be a good approach.
Should we just simulate the Axis2 stub code programatically driven by the
WSDL in the following steps?

1) Create the AxisService and add all the operations
2) Create the ServiceClient and set options such as the target EPR
3) Create the OperationClient, set the options
4) Create the request SOAPEnvelope (OMElement) from the input data
5) Execute the operation client
6) Create response object out of the SOAPEnvelope (OMElement)

IMHO, the quick and dirty way to implement the SDO serializer/deserializer
can be like this:

Serializer: Save the DataObject as XML document by calling
"commonj.sdo.helper.XMLHelper.save()" and then using the StAX parser to pull
the XML document back to the OMElement
Deserializer: Create the XMLDocument from the OMElement and load it using
"commonj.sdo.helper.XMLHelper.load()"

Then they can be further enhanced to transform between SDO and OM using the
StAX directly until we have a nice StAX based SDO serializer/deserializer (I
really hope I can spend some time to make it happen soon:-).

I also did some investigation for the "entryPoint" based on Axis2. Here are
some possibilities:
1) Use the DeploymentEngine to register SCA WS entry point to Axis2 as web
services (In Axis1.x, we use the "EngineConfigurationFactory" to publish SCA
WS entryPoints to the engine)
2) Create the MessageReceiver for SCA WS entry point inspired by this
article: http://www.developer.com/java/other/article.php/10936_3570031_2

Raymond

----- Original Message ----- 
From: "ant elder" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Monday, February 13, 2006 4:24 AM
Subject: Migration to Axis2


I'd like to start on the migration from Axis 1 to Axis2 now so I'm wondering
whats the best way to do it. The current WS binding is in binding.axis so I
guess i need a new binding.axis2, and as there's some others who've
expressed interest in helping it would be good if that could go in the
Tuscany sandbox or trunk. The easiest approach seems to me to be copy all
the existing binding.axis code to binding.axis2 and then change everything
that uses Axis to use Axis2, and probably starting with the externalService
code, and once thats going do the entryPoint code. I know this doesn't
include all the context and sdo and other changes which are going on or
being proposed, but its not real clear what all those require so it seems
easiest to stick with whats already there for now. How does all this sound?

   ...ant

Reply via email to