Hi,

I debugged your test case and it turned out the problem is in your test case. 
There is a dangling type reference in helloworld.wsdl:

<wsdl:types>
    <schema elementFormDefault="qualified" targetNamespace="http://helloworld"; 
xmlns="http://www.w3.org/2001/XMLSchema";>

    <element name="getGreetings">

    <complexType>

        <sequence>

            <element name="name" type="xsd:Name"/>

        </sequence>

    </complexType>

</element>

It should be: <element name="name" type="tns:Name"/>.

After fixing the issue, I can run it successfully with the import.sdo statement.

Thanks,

Raymond

----- Original Message ----- 
From: "wang feng" <[EMAIL PROTECTED]>
To: <tuscany-dev@ws.apache.org>
Sent: Tuesday, February 19, 2008 5:04 PM
Subject: Re: Re: How to use SDO in tuscany sca?


>I add the element 'import.sdo' in the composite,but the sample throws another 
>exception.
> 
> Exception in thread "main" java.lang.ClassCastException: The value of type 
> 'class org.apache.tuscany.sdo.impl.DynamicDataObjectImpl' must be of type 
> 'class java.lang.String'
> at 
> org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettableStatic.validate(EStructuralFeatureImpl.java:2195)
> at 
> org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$InternalSettingDelegateSingleDataUnsettable.dynamicSet(EStructuralFeatureImpl.java:2116)
> at 
> org.eclipse.emf.ecore.impl.BasicEObjectImpl.eDynamicSet(BasicEObjectImpl.java:709)
> at 
> org.apache.tuscany.sdo.impl.DynamicDataObjectImpl.eDynamicSet(DynamicDataObjectImpl.java:160)
> at org.apache.tuscany.sdo.impl.DataObjectImpl.eSet(DataObjectImpl.java:1468)
> at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eSet(BasicEObjectImpl.java:654)
> at org.apache.tuscany.sdo.impl.DataObjectImpl.set(DataObjectImpl.java:146)
> at org.apache.tuscany.sdo.impl.DataObjectImpl.set(DataObjectImpl.java:106)
> at 
> org.apache.tuscany.sca.databinding.sdo.SDOWrapperHandler.setChild(SDOWrapperHandler.java:71)
> at 
> org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:131)
> at 
> org.apache.tuscany.sca.core.databinding.transformers.Input2InputTransformer.transform(Input2InputTransformer.java:1)
> at 
> org.apache.tuscany.sca.databinding.impl.MediatorImpl.mediate(MediatorImpl.java:73)
> at 
> org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.transform(DataTransformationInterceptor.java:175)
> at 
> org.apache.tuscany.sca.core.databinding.wire.DataTransformationInterceptor.invoke(DataTransformationInterceptor.java:72)
> at 
> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:261)
> at 
> org.apache.tuscany.sca.core.invocation.JDKInvocationHandler.invoke(JDKInvocationHandler.java:149)
> at $Proxy5.getGreetings(Unknown Source)
> at helloworld.HelloWorldClient.test(HelloWorldClient.java:53)
> at helloworld.HelloWorldClient.main(HelloWorldClient.java:39)
> 
> Is something wrong? Where can I found a sample whith dynamic SDO?
> 
> Thanks, 
> wangfeng
> 
> 
> On 2008-02-19, Scott Kurz <[EMAIL PROTECTED]> wrote:
> 
>>Wang,
>>
>>I'm guessing the problem is probably that you need to register your
>>app types with the appropriate context established by the Tuscany
>>runtime.
>>
>>Tuscany typically does this automatically, now, for static SDO.  For
>>dynamic SDO (i.e. DataObject), you would currently put something like
>>this in your SCDL ( *.composite) file:
>>
>> <composite ...
>>           
>> xmlns:dbsdo="http://tuscany.apache.org/xmlns/sca/databinding/sdo/1.0";
>>           ....>
>>
>>    <dbsdo:import.sdo location="wsdl/helloworld.wsdl"/>
>>
>>(I looked in your zip and you don't seem to use the types in the XSD,
>>so I pointed to the WSDL instead... but you can have as multiple
>><import.sdo> elements).
>>
>>This relation between SCA and SDO scopes is defined by Tuscany, not a
>>spec, at the moment.
>>
>>Scott
>>
>>
>>On Feb 18, 2008 9:15 AM, wang feng <[EMAIL PROTECTED]> wrote:
>>> Hi all,
>>>
>>>    I do a sample which has a parameter's type is DataObject,and deploy the 
>>> component with webservice.
>>>    When I invoke the service ,throws an error.
>>>    Is my usage wrong?
>>>
>>> My sample like this.
>>>
>>> helloworld.composite
>>> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0";
>>>         targetNamespace="http://helloworld";
>>>         xmlns:hw="http://helloworld";
>>>     name="helloworldws">
>>>     <component name="HelloWorldServiceComponent">
>>>         <implementation.java class="helloworld.HelloWorldImpl" />
>>>             <service name="HelloWorldService">
>>>                 <interface.wsdl 
>>> interface="http://helloworld#wsdl.interface(HelloWorld)" />
>>>                 <binding.ws/>
>>>             </service>
>>>     </component>
>>> </composite>
>>>
>>> HelloWorldImpl.java
>>> @Service(HelloWorldService.class)
>>> public class HelloWorldImpl implements HelloWorldService {
>>>     public String getGreetings(DataObject name) {
>>>         return "Hello " + name.getString("first") + " " + 
>>> name.getString("last");
>>>     }
>>> }
>>>
>>> You can download the full testcase on 
>>> http://www.blogjava.net/Files/wangfeng/src.zip
>>>
>>> Thanks
>>> Wang Feng
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>>> For additional commands, e-mail: [EMAIL PROTECTED]
>>>
>>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: [EMAIL PROTECTED]
>>For additional commands, e-mail: [EMAIL PROTECTED]
>>
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>

Reply via email to