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: <[email protected]>
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]
>