Hi, Albert.

I'm now able to reproduce the problem. The orginal zips are not complete and I had to add axis2 jars to the WEB-INF/lib directory to get the WS deployed to Tomcat. There are two issues here:

1) The axis2 web service is producing a SOAP message which doesn't conform to the WSDL:

<ns:return xmlns:ns="http://services.move.ec3"; xmlns:ax21="http://types.move.ec3/xsd"; xmlns:_typens_="http://types.move.ec3/xsd"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; type="ec3.move.types.Comment" xsi:type="_typens_:Comment"><ax21:body>c</ax21:body><ax21:caption>b</ax21:caption><ax21:entryId>1</ax21:entryId><ax21:owner>a1</ax21:owner><ax21:reference>a1</ax21:reference><ax21:tstamp>2008-04-16T16:22:07.812Z</ax21:tstamp></ns:return>

Please note the type="ec3.move.types.Comment" is an invalid attribute.

I suggest that you open a JIRA against Axis2.

2) This invalid attribute confuses the SDO runtime, and it falls into an infinite loop. Please open a JIRA against tuscany-sdo. We'll investigate on it.

Thanks,
Raymond
--------------------------------------------------
From: "Albert Rainer" <[EMAIL PROTECTED]>
Sent: Tuesday, April 15, 2008 8:19 AM
To: "Raymond Feng" <[EMAIL PROTECTED]>
Subject: AW: Using generated SDO classes in SCA, was: Re: sdo newbie problem

Hello Raymond,
thanks for your help:

I send you the stacktrace, it is an infinite loop

And the wsdl from which the the static sdo objects are generated

attached are also the (eclipse) projects, both, server (postler) and client (wsc08)

(SOAP messages I do not have, actually I do not know hoe to watch the messages sent and received from client)



Thanks,
Albert


Exception in thread "main" java.lang.StackOverflowError
at org.eclipse.emf.ecore.impl.EClassImpl.getESuperTypes(EClassImpl.java:1041) at org.eclipse.emf.ecore.util.BasicExtendedMetaData.getAllAttributes(BasicExtendedMetaData.java:796) at org.apache.tuscany.sdo.helper.SDOExtendedMetaDataImpl.getLocalAttribute(SDOExtendedMetaDataImpl.java:139) at org.eclipse.emf.ecore.util.BasicExtendedMetaData.getAttribute(BasicExtendedMetaData.java:729) at org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.getFeature(XMLHelperImpl.java:876) at org.eclipse.emf.ecore.xmi.impl.XMLHandler.getFeature(XMLHandler.java:2716) at org.eclipse.emf.ecore.xmi.impl.XMLHandler.setAttribValue(XMLHandler.java:2463) at org.eclipse.emf.ecore.xmi.impl.SAXXMLHandler.handleObjectAttribs(SAXXMLHandler.java:72) at org.apache.tuscany.sdo.util.resource.SDOXMLResourceImpl$SDOXMLLoadImpl$XmlHandler.handleUnknownFeature(SDOXMLResourceImpl.java:362) at org.eclipse.emf.ecore.xmi.impl.XMLHandler.setAttribValue(XMLHandler.java:2466) at org.eclipse.emf.ecore.xmi.impl.SAXXMLHandler.handleObjectAttribs(SAXXMLHandler.java:72) at org.apache.tuscany.sdo.util.resource.SDOXMLResourceImpl$SDOXMLLoadImpl$XmlHandler.handleUnknownFeature(SDOXMLResourceImpl.java:362) at org.eclipse.emf.ecore.xmi.impl.XMLHandler.setAttribValue(XMLHandler.java:2466) at org.eclipse.emf.ecore.xmi.impl.SAXXMLHandler.handleObjectAttribs(SAXXMLHandler.java:72) at org.apache.tuscany.sdo.util.resource.SDOXMLResourceImpl$SDOXMLLoadImpl$XmlHandler.handleUnknownFeature(SDOXMLResourceImpl.java:362) at org.eclipse.emf.ecore.xmi.impl.XMLHandler.setAttribValue(XMLHandler.java:2466) at org.eclipse.emf.ecore.xmi.impl.SAXXMLHandler.handleObjectAttribs(SAXXMLHandler.java:72) at org.apache.tuscany.sdo.util.resource.SDOXMLResourceImpl$SDOXMLLoadImpl$XmlHandler.handleUnknownFeature(SDOXMLResourceImpl.java:362) at org.eclipse.emf.ecore.xmi.impl.XMLHandler.setAttribValue(XMLHandler.java:2466) at org.eclipse.emf.ecore.xmi.impl.SAXXMLHandler.handleObjectAttribs(SAXXMLHandler.java:72) at org.apache.tuscany.sdo.util.resource.SDOXMLResourceImpl$SDOXMLLoadImpl$XmlHandler.handleUnknownFeature(SDOXMLResourceImpl.java:362)

500 or so times the same loop








-----Ursprüngliche Nachricht-----
Von: Raymond Feng [mailto:[EMAIL PROTECTED]
Gesendet: Montag, 14. April 2008 21:47
An: Albert Rainer
Cc: tuscany-user@ws.apache.org
Betreff: Re: Using generated SDO classes in SCA, was: Re: sdo newbie
problem


Hi,

There is an integration test at
https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/itest/databindings/sdogen.
It has quite a few test methods covering different combinations.

Can you post the full stack trace so that we can understand where it falls
into an infinite loop? It would be even better if you can post the full test
case.

It seems to be some namespace related issue. Is the SOAP body XML conforming
to the XSD? Would it be possible to possible the WSDL/XSD as well as the
SOAP message?

Thanks,
Raymond

--------------------------------------------------
From: "Albert Rainer" <[EMAIL PROTECTED]>
Sent: Monday, April 14, 2008 8:42 AM
To: <[EMAIL PROTECTED]>
Subject: Using generated SDO classes in SCA, was: Re: sdo newbie problem

thanks, Raymond.
I tried the sdo.import

 <dbsdo:import.sdo factory="ec3.move.types.xsd.XsdFactory"
xmlns:dbsdo="http://tuscan...
but ran into the next problem when I call a method that returns a complex
object..:



Exception in thread "main" java.lang.StackOverflowError
at java.lang.Exception.<init>(Exception.java:41)
at java.lang.RuntimeException.<init>(RuntimeException.java:43)
at
java.lang.IllegalArgumentException.<init>(IllegalArgumentException.java:36)
at
org.apache.axiom.om.impl.llom.util.NamespaceContextImpl.getNamespaceURI(NamespaceContextImpl.java:47)
at
org.apache.tuscany.sdo.util.resource.SDOXMLResourceImpl$SDOXMLHelperImpl$StreamNamespaceSupport.getURI(SDOXMLResourceImpl.java:130)
at
org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.getURI(XMLHelperImpl.java:1253)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.getFeature(XMLHandler.java:2707)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.setAttribValue(XMLHandler.java:2463)
at
org.eclipse.emf.ecore.xmi.impl.SAXXMLHandler.handleObjectAttribs(SAXXMLHandler.java:72)
at
org.apache.tuscany.sdo.util.resource.SDOXMLResourceImpl$SDOXMLLoadImpl$XmlHandler.handleUnknownFeature(SDOXMLResourceImpl.java:362)
at
org.eclipse.emf.ecore.xmi.impl.XMLHandler.setAttribValue(XMLHandler.java:2466)
....

Does there exist an example where a web service is called that returns a
complex object (not only a string or an integer)?
Somethin like
public Comment createComment(String key,String reference,String
caption,String body)throws Exception{
if(!ServiceHelper.checkKey(key)){
throw new Exception("key not known");
}
Comment comment=new Comment(key,reference,caption,body);
return comment;
}

It works when I send a complex object, such as a "Comment", but cannot
receive it.

I am in a somehow desperate situation. I wanted the tuscany composition
framework as part of my lecture notes and exercises for the course.

thanks for any help


----------------------------------------------------------------
Dr. Albert Rainer
EC3 - Electronic Commerce Competence Center
www.ec3.at
Donau-City Strasse 1
A-1220 Wien
Tel: +43 1 522 71 71 - 33
Fax: +43 1 522 71 71 - 71



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to