The good news is that I managed to get the helloworldwsclient working with a workaround and some minor changes.

Workaround: Use the interface.wsdl instead of interface.java for the binding.ws.
AxisReference:  Set the databinding to OMElement for the WSDLServiceContract
Axis2TargetInvoker: Make sure it goes with the pure OMElement path Rick did before. There is a bug that it doesn't set the pureOMElemnt flag based on the input data.

But please respond to my previous note on how we support java interfaces in this case.

Thanks,
Raymond

----- Original Message ----- From: "Raymond Feng" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: Wednesday, September 13, 2006 10:20 AM
Subject: More databinding integration update


Hi,

1) A model for WSDL portType/operation and related XSD metadata to represent unwrapped and wrapped WSDL operations

2) Input2InputTransformer and Out2OutTransformer to handle message payload conversions accross IDL/databindings.

3) A databinding provider such AXIOM, DOM, JAXB orSDO can implement the WrapperHandler to plug in the wrapping/unwrapping support for the given databinding.

4) The echo-databinding sample has been updated to integrate the above features and demonstrate the following interactions.

a) ComponentA/Interface1 (String) --> ComponentB/Interface2 (DOM) (A databinding interceptor transforms String to DOM and vice versa) b) ComponentB.reference with Echo java interface (DOM) --> Composite Echo Reference (with wrapped WSDL and AXIOM databinding) (A databinding interceptor transform DOM to wrapped AXIOM).

I started to look into the integration with Axis2 today. I ran into the following issue now.

For a composite reference HelloWorldService,

<reference name="HelloWorldService">
   <interface.java interface="helloworld.HelloWorldService"/>
<binding.ws endpoint="http://helloworld#wsdl.endpoint(HelloWorldService/HelloWorldSoapPort)" location="wsdl/helloworld.wsdl" />
</reference>

It's modeled as a java interface for the inbound wire (for example, a component reference wired to this composite reference). But the target invoker expects the WSDL interface from the binding.ws endpoint. To make this happen with databinding transformation, I assume the BindingBuilder has to create an outbound wire (to the Axis2 binding with the target contract as the WSDL derived from the binding.ws). The TargetInvoker will be added to the end of the outbound wire. Then the databinding interceptor will kick in for the outbound wire to transform the JavaServiceContract to the WSDLServiceContract so that the OMElement can be directly consumed by the Axis2 TargetInvoker.

As a summary, the sequence will be:

a) component.reference (inteface 1) --> composite.reference (Java interface 2) // It's happending now b) composite.reference (Java interface 2) --> axis2 binding (WSDL portType) // Yet to happen

Am I on the right track? Your comments will be appreciated.

Thanks,
Raymond


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


Reply via email to