Hey Spike, Could you try running this scenario oustide of Axis (ie, just add a main method or something). I think you might be hitting this issue http://issues.apache.org/jira/browse/XMLBEANS-329 which is actually a dupe of https://issues.apache.org/jira/browse/AXIS2-2578 as it only appears when using the axis container. In other words can we attempt to repro this using only xmlbeans? Thanks, -Jacob Danner
On 6/13/07, Spike Mulligan <[EMAIL PROTECTED]> wrote:
So that link seems to imply that Axis2 doesn't support substitution groups and I have to tweak the generated code to support them. I understand that if they were using ADB to do their binding. But I'm running wsdl2java with the -u xmlbeans option! Xmlbeans is supposed to support ALL features of schemas. Shouldn't the code it generates for the parent element know how to identify and parse inheiriting elements??? On 6/12/07, Martin Gainty <[EMAIL PROTECTED]> wrote: > > > Mr Mulligan-- > > is discussed here > http://mail-archives.apache.org/mod_mbox/ws-axis-dev/200405.mbox/[EMAIL PROTECTED] > I dont see where you are setting the xmlType for your typeDesc before associating the SubstitutionGroupMember as in > typeDesc.setXmlType(new QName("urn:","DerivedFromFooType")); > > ? > M- > This email message and any files transmitted with it contain confidential > information intended only for the person(s) to whom this email message is > addressed. If you have received this email message in error, please notify > the sender immediately by telephone or email and destroy the original > message without making a copy. Thank you. > > > > ----- Original Message ----- > From: Spike Mulligan > To: [EMAIL PROTECTED] > Sent: Tuesday, June 12, 2007 9:34 AM > Subject: (AXIS2 + wsdl2java + XMLBeans) + polymorphism = classcast exception > > Does anyone know why the generated code is giving me classcast exceptions? > > I'm using substitutionGroups + complextype extension to implement the following structure: > > TYPES: ELEMENTS OF THOSE TYPES: > AbstractAttributeSetType AbstractAttributeSet > / \ / \ > / \ extension / \ subtitutionGroups > / \ / \ > Type1 Type2 Element1 Element2 > > When I send a soap request with the AbstractAttributeSet it's accepted fine, > but when I send Element1 or Element2 it gives me a classcast exception when I do : > addDevice.getAddDevice().getAddDeviceInputParam().getAbstractAttributeSet().schemaType().getName().getLocalPart()) > > The exception occurs in getAbstractAttributeSet() in the line target = (com.nds.consumermgr.types.AbstractAttributeSetType)get_store().find_element_user(ABSTRACTATTRIBUTESET$3, 0); > > Why the error? Is there some special way you're supposed to do this? > > > ---------- Forwarded message ---------- > From: Spike Mulligan < [EMAIL PROTECTED]> > Date: Jun 12, 2007 4:21 PM > Subject: Fwd: AXIS2 + wsdl2java + XMLBeans not producing correct binding > To: [email protected] > > > Right--when I try to do that I get a classcastexception when I use the inheiriting class. When I use the abstract parent class then gives me the name of the element. > > I do: > addDevice.getAddDevice().getAddDeviceInputParam().getAbstractAttributeSet().schemaType().getName().getLocalPart()) > > The result is a classcastexception in getAbstractAttributeSet() in the line target = (com.nds.consumermgr.types.AbstractAttributeSetType)get_store().find_element_user(ABSTRACTATTRIBUTESET$3, 0); > > So for some reason it doesn't know to get the inheiriting type. > > Any ideas? > > > > > > > > > On 6/11/07, Mohana Ramaratnam <[EMAIL PROTECTED]> wrote: > > > > > > > > > > The way this has been working for me is: > > > > > > > > If (file.schemaType().getName().getLocalPart().equals(ImageResource.type.getName().getLocalPart())) > > > > ImageResource imageResource = (ImageResource)file.changeType(ImageResource.type); > > > > > > > > Where file is an object of type AbstractResource and ImageResource extends AbstractResource (similar to your case of Type1 extending AbstractType) > > > > > > > > You could check your xmlbeans src to see what the class hierarchy is. > > > > > > > > > > > > > > > > ________________________________ > > > > From: Spike Mulligan [mailto:[EMAIL PROTECTED] > > Sent: Monday, June 11, 2007 9:55 AM > > > > To: [email protected] > > Subject: Re: AXIS2 + wsdl2java + XMLBeans not producing correct binding > > > > > > > > > > > > > > > > > > Right so checking the schematype gives me the parent type and casting the parent type to the inheiriting type gives me a runtime exception. > > > > Have you ever gotten this to work? Do you think maybe my soap message or my xsd may be wrong? > > > > > > On 6/11/07, Mohana Ramaratnam < [EMAIL PROTECTED]> wrote: > > > > > > > > I think you can invoke the method schemaType to check the xsiType > > > > > > > > ________________________________ > > > > From: Spike Mulligan [mailto: [EMAIL PROTECTED] > > Sent: Monday, June 11, 2007 7:48 AM > > To: [email protected] > > Subject: Re: AXIS2 + wsdl2java + XMLBeans not producing correct binding > > > > > > > > > > Okay, but how do I check at runtime whether its Type1 or Type2? > > > > > > On 6/11/07, Mohana Ramaratnam <[EMAIL PROTECTED] > wrote: > > > > > > > > You will have to use the method changeType and typecast the result back to the Type1 class. > > > > > > > > Mohana > > > > > > > > ________________________________ > > > > From: Spike Mulligan [mailto: [EMAIL PROTECTED] > > Sent: Monday, June 11, 2007 5:29 AM > > To: [email protected] > > Subject: AXIS2 + wsdl2java + XMLBeans not producing correct binding > > > > > > > > > > > > > > So I have a schema containing the following structure: > > > > AbstractType > > / \ > > / \ extension > > / \ > > Type1 Type2 > > > > > > When I send the service an instance of Type1 for example using xsi:type="ns1:Type1", it should give me the Type1 class(which wsdl2java generated and which extends the AbstractType class). > > > > Instead it gives me a class of type AbstractType! > > > > Has anyone successfully done this? Does it work? Is this the expected behaviour of XML beans? What am I doing wrong? > > > > > > > > > > >
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]

