Raymond, Well, thanks but I still can't get my app to work (backporting your fix to an older level in which the Axis2 binding still works). I'm going to have to put this on hold for now.
The o.a.t.databinding.sdo.XMLStreamReader2DataObject is hitting a FeatureNotFoundException when trying to deserialize the XML into an SDO representing my wrapped, child input element. It seems the problem may occur during serialization. When I invoke this same service operation with the sdo2om stuff disabled, the two-hop path involving DataObject2XMLStreamReader then XMLStreamReader2OMElement puts an xsi:type attribute in my serialized XML. However, the one-hop DataObject2OMElement transform does NOT include this xsi:type in the OMElement's XML. If that's enough for you to go on, great, but I imagine not so I'll have to pick this up later at some point. The EMF code which ultimately is throwing this FeatureNotFoundException is pretty tough to debug into. Thanks, Scott On 5/7/07, Raymond Feng <[EMAIL PROTECTED]> wrote:
Hi, Scott. I think the issue is in the creation of SDODataSource. I checked in a fix under 536028, please verify it fixes your problem. Thanks, Raymond ----- Original Message ----- From: "Scott Kurz" < [EMAIL PROTECTED]> To: <[email protected]> Sent: Monday, May 07, 2007 9:10 AM Subject: Re: SDO-Axiom DB problem: Element name from data source is dataObject, not the expected... > Well, I can state a bit more about the problem.... > > First, I forgot the key part of the stack trace: > > OMSourcedElementImpl.forceExpand() line: 158 > OMSourcedElementImpl.setNamespace(OMNamespace) line: 454 > OMElementWrapperHandler.setChild(OMElement, int, ElementInfo, Object) > line: > 57 > OMElementWrapperHandler.setChild(Object, int, ElementInfo, Object) line: > 39 > Output2OutputTransformer.transform(Object, TransformationContext) line: > 148 > > In building org.apache.tuscany.databinding.sdo2om.SDODataSource we do > this: > > public SDODataSource(DataObject obj, HelperContext helperContext) { > this.helperContext = helperContext; > this.sourceDocument = > helperContext.getXMLHelper().createDocument(obj, > > ROOT_ELEMENT.getNamespaceURI(), > > ROOT_ELEMENT.getLocalPart()); > } > > So XMLStreamReader getReader() returns a reader then built from this > ROOT_ELEMENT, with QName {commonj.sdo}/DataObject > > However, the OMElementWrapperHandler code in the stack trace above makes > an > Axiom call with checks this QName against the QName of the specific output > element I'm working with. > > This does not match {commonj.sdo}/DataObject hence my error message. > > I'm not sure why something like this doesn't happen in the databinding > itests.... Is there an issue in the construction of SDODataSource perhaps > or should OMElementWrapperHandler be making a slightly different Axiom > call? > > Scott > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
