It's OK,Thanks Raymond.
Thanks,
wangfeng
On 2008-02-20, Raymond Feng [EMAIL PROTECTED] wrote:
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