You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by Jean-Sebastien Delfino <js...@apache.org> on 2007/02/22 02:41:14 UTC

Databinding programming model, was: Databinding exception running helloworldwsclientOM

Raymond Feng wrote:
> Hi,
>
> Actually such simplification is under development. I'm in the middle 
> of improving it so that @DataType annotation is not required if the 
> type can be recognized by a databinding.
>
> Thanks,
> Raymond
>
> ----- Original Message ----- From: "Jean-Sebastien Delfino" 
> <js...@apache.org>
> To: <tu...@ws.apache.org>
> Sent: Wednesday, February 21, 2007 5:07 PM
> Subject: Re: Databinding exception running helloworldwsclientOM
>
>
>> Raymond Feng wrote:
>>> Hi,
>>>
>>> I fixed the problems in the test case which is missing the @DataType 
>>> annotation.
>>>
>>> In the same test case, I also fixed the endpoint URI, namespace and 
>>> assertions. Now it is passed.
>>>
>>> Thanks,
>>> Raymond
>>>
>>> ----- Original Message ----- From: "Jean-Sebastien Delfino" 
>>> <js...@apache.org>
>>> To: <tu...@ws.apache.org>
>>> Sent: Wednesday, February 21, 2007 2:36 PM
>>> Subject: Databinding exception running helloworldwsclientOM
>>>
>>>
>>>> I am getting the following error trying to run the test case that I 
>>>> just checked in under axis2/samples/helloworldwsclientOM in the 
>>>> integration branch:
>>>>
>>>> [INFO] Surefire report directory: 
>>>> /home/delfinoj/Tuscany/apache-repos/branches/sca-java-integration/sca/extensions/axis2/samples/helloworldwsclientOM/target/surefire-reports 
>>>>
>>>>
>>>> -------------------------------------------------------
>>>> T E S T S
>>>> -------------------------------------------------------
>>>> Running helloworldOM.HelloWorldServerTestCase
>>>> Feb 21, 2007 2:28:37 PM 
>>>> org.apache.axis2.deployment.URLBasedAxisConfigurator 
>>>> getAxisConfiguration
>>>> INFO: No repository found , module will be loaded from classpath
>>>> Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 
>>>> 3.099 sec
>>>> Running helloworldOM.HelloWorldClientTestCase
>>>> Feb 21, 2007 2:28:39 PM 
>>>> org.apache.axis2.deployment.URLBasedAxisConfigurator 
>>>> getAxisConfiguration
>>>> INFO: No repository found , module will be loaded from classpath
>>>> Feb 21, 2007 2:28:39 PM 
>>>> org.apache.axis2.deployment.URLBasedAxisConfigurator 
>>>> getAxisConfiguration
>>>> INFO: No repository found , module will be loaded from classpath
>>>> Feb 21, 2007 2:28:42 PM 
>>>> org.apache.axis2.deployment.URLBasedAxisConfigurator 
>>>> getAxisConfiguration
>>>> INFO: No repository found , module will be loaded from classpath
>>>> Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 
>>>> 5.04 sec <<< FAILURE!
>>>> testWSClient(helloworldOM.HelloWorldClientTestCase)  Time elapsed: 
>>>> 5.036 sec  <<< ERROR!
>>>> org.apache.tuscany.spi.databinding.TransformationException: No path 
>>>> found for the transformation
>>>>        at 
>>>> org.apache.tuscany.core.databinding.impl.MediatorImpl.getTransformerChain(MediatorImpl.java:164) 
>>>>
>>>>        at 
>>>> org.apache.tuscany.core.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:79) 
>>>>
>>>>        at 
>>>> org.apache.tuscany.core.databinding.impl.Input2InputTransformer.transform(Input2InputTransformer.java:138) 
>>>>
>>>>        at 
>>>> org.apache.tuscany.core.databinding.impl.Input2InputTransformer.transform(Input2InputTransformer.java:46) 
>>>>
>>>>        at 
>>>> org.apache.tuscany.core.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:91) 
>>>>
>>>>        at 
>>>> org.apache.tuscany.core.databinding.impl.DataBindingInteceptor.transform(DataBindingInteceptor.java:164) 
>>>>
>>>>        at 
>>>> org.apache.tuscany.core.databinding.impl.DataBindingInteceptor.invoke(DataBindingInteceptor.java:75) 
>>>>
>>>>        at 
>>>> org.apache.tuscany.core.wire.SynchronousBridgingInterceptor.invoke(SynchronousBridgingInterceptor.java:41) 
>>>>
>>>>        at 
>>>> org.apache.tuscany.core.databinding.impl.PassByValueInterceptor.invoke(PassByValueInterceptor.java:68) 
>>>>
>>>>        at 
>>>> org.apache.tuscany.core.wire.SynchronousBridgingInterceptor.invoke(SynchronousBridgingInterceptor.java:41) 
>>>>
>>>>        at 
>>>> org.apache.tuscany.spi.wire.AbstractOutboundInvocationHandler.invoke(AbstractOutboundInvocationHandler.java:91) 
>>>>
>>>>        at 
>>>> org.apache.tuscany.core.wire.jdk.JDKOutboundInvocationHandler.invoke(JDKOutboundInvocationHandler.java:166) 
>>>>
>>>>        at $Proxy23.getGreetings(Unknown Source)
>>>>        at 
>>>> helloworldOM.HelloWorldServiceComponent.getGreetings(HelloWorldServiceComponent.java:42) 
>>>>
>>>>        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>>        at 
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
>>>>
>>>>        at 
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
>>>>
>>>>        at java.lang.reflect.Method.invoke(Method.java:585)
>>>>        at 
>>>> org.apache.tuscany.core.implementation.java.JavaTargetInvoker.invokeTarget(JavaTargetInvoker.java:93) 
>>>>
>>>>        at 
>>>> org.apache.tuscany.spi.extension.TargetInvokerExtension.invoke(TargetInvokerExtension.java:67) 
>>>>
>>>>        at 
>>>> org.apache.tuscany.core.wire.InvokerInterceptor.invoke(InvokerInterceptor.java:44) 
>>>>
>>>>        at 
>>>> org.apache.tuscany.spi.wire.AbstractInboundInvocationHandler.invoke(AbstractInboundInvocationHandler.java:45) 
>>>>
>>>>        at 
>>>> org.apache.tuscany.core.wire.jdk.JDKInboundInvocationHandler.invoke(JDKInboundInvocationHandler.java:122) 
>>>>
>>>>        at $Proxy23.getGreetings(Unknown Source)
>>>>        at 
>>>> helloworldOM.HelloWorldClientTestCase.testWSClient(HelloWorldClientTestCase.java:58) 
>>>>
>>>>
>>>>
>>>> Results :
>>>> Tests run: 2, Failures: 0, Errors: 1, Skipped: 0
>>>>
>>>> I may have missed something in the configuration of the module, but 
>>>> does anybody working on our Axiom databinding know what could cause 
>>>> an "org.apache.tuscany.spi.databinding.TransformationException: No 
>>>> path found for the transformation" exception?
>>>>
>>>> -- 
>>>> Jean-Sebastien
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
>>>> For additional commands, e-mail: tuscany-dev-help@ws.apache.org
>>>>
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
>>> For additional commands, e-mail: tuscany-dev-help@ws.apache.org
>>>
>>>
>>
>> Ok, I added one more @DataType annotation to the server side as well 
>> and it's passing for me as well now. Thanks!
>>
>> The helloworldwsOM and helloworldwsclientOM modules are now included 
>> in the "stable" profile.
>>
>> The HelloWorldService interface now looks like this:
>>
>> @DataType(name="org.apache.axiom.om.OMElement")
>> public interface HelloWorldService {
>>
>>    public org.apache.axiom.om.OMElement 
>> getGreetings(org.apache.axiom.om.OMElement name);
>>
>> }
>>
>> Why do I have to repeat the type of the parameter to getGreetings in 
>> a Tuscany annotation? Could we simplify the programming model for 
>> data bindings and not require this annotation?
>>
>> -- 
>> Jean-Sebastien
>>
>>

Great!

Are you going to detect JAX-WS and SDO generated interfaces as well?

Also could you give a summary of how to use these annotations?

What does it mean to have a @DataType annotation on a class? on a 
method? on a field?

Why isn't the DataType annotation usable on a parameter?

Should I specify @DataType on a service interface? or can I specify it 
on a component implementation?

Does @DataType support inheritance? let's say I have an Account business 
object class, and CheckingAccount and SavingsAccount extending Account. 
Can I specify @DataType(Account) and still flow CheckingAccounts and 
SavingsAccount?

Thanks...

-- 
Jean-Sebastien


---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org