Thanks that worked.

Regards
Gary

On Thu, Jun 9, 2011 at 3:18 PM, ant elder <[email protected]> wrote:
> In that case it should be relatively straight forward - you just need
> to set the databinding name on the interface correctly to what you
> need. One example of doing that is in the Hazelcast binding which
> sends xml on the wire so it uses the DOMDataBinding to have Tuscany
> use a DOM Node in the messages used by the binding. The code that does
> this is at:
>
> https://svn.apache.org/repos/asf/tuscany/sca-java-2.x/trunk/modules/domain-hazelcast/src/main/java/org/apache/tuscany/sca/binding/hazelcast/HazelcastBindingProviderFactory.java
>
> See the code line:
>
> interfaceContract.getInterface().resetDataBinding(DOMDataBinding.NAME);
>
>   ...ant
>
> On Thu, Jun 9, 2011 at 3:04 PM, Gary Brown <[email protected]> wrote:
>> Hi Simon
>>
>> I have created my own binding, following the binding-sample, so I just
>> retrieve a reference to my equivalent of the SampleServiceInvoker.
>>
>> Regards
>> Gary
>>
>> On Thu, Jun 9, 2011 at 1:50 PM, Simon Laws <[email protected]> wrote:
>>> On Wed, Jun 8, 2011 at 10:37 PM, Gary Brown <[email protected]> wrote:
>>>> Hi
>>>>
>>>> I'm using Tuscany 2 beta2 as an embedded component, and invoking a
>>>> service component through the
>>>> org.apache.tuscany.sca.invocation.Invoker api.
>>>>
>>>> The service has been created using the cxf wsdl2java tool, so the
>>>> parameters are jaxb based Java classes. However I would like to be
>>>> able to pass in the XML document and have the framework handle the
>>>> necessary transformation to the appropriate type required by the
>>>> service interface.
>>>>
>>>> At present the invocation is just returning a response message with an
>>>> IllegalArgumentException in the body.
>>>>
>>>> Any suggestions, or suitable examples, would be appreciated.
>>>>
>>>> Regards
>>>> Gary
>>>>
>>>
>>> Hi Gary
>>>
>>> We do support such transformation but it relies on there being a
>>> suitable wire in place between a service binding and the service
>>> itself. If you look at the last diagram on this page [1]  you'll see a
>>> JMS binding being used to access a Java service. In between the
>>> binding and the service there is a chain of interceptors. These
>>> interceptors typically do formatting and policy handling. In
>>> particular the DatabindingInterceptor will try and convert the
>>> incoming message from the format at the binding to the format required
>>> by the service. Let's say we're receiving XML and the service is
>>> written in Java using JAXB objects as operation parameters (as is the
>>> case in  [1]) then the databinding will look at the incoming message,
>>> which will generally be an Axiom object when XML is coming in, and
>>> then use a JAXB context to convert this XML to appropriate JAXB
>>> objects. The reverse transformation happens when the response is
>>> returned.
>>>
>>> When you say you are "invoking a service component through the
>>> org.apache.tuscany.sca.invocation.Invoker api." can you say a bit more
>>> about how you retrieve the service to invoke and what what you
>>> actually do to enact the invocation.
>>>
>>> [1] 
>>> http://tuscany.apache.org/documentation-2x/sca-java-runtime-overview.html
>>>
>>> Regards
>>>
>>> Simon
>>>
>>> --
>>> Apache Tuscany committer: tuscany.apache.org
>>> Co-author of a book about Tuscany and SCA: tuscanyinaction.com
>>>
>>
>

Reply via email to