See inline.
Simon
wang feng wrote:
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.sdostatement.
Can we track this as a JIRA? A simple user error like this should not
produce a ClassCastException deep in EMF.
Simon
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]