Hi Jim, Thank you for your reply.
Item and OrderBy are generated by JAXB from a schema.xsd file. I have followed your advice to see if it behaves any different but I still get the same error. The Item and therefore OrderBy classes belong to a different JAXB context: com.aaa.bbb.zzz.jaxb, but not sure if/how to indicate this? Thanks for your help, Monica From: Jim Ma <[EMAIL PROTECTED]> To: cxf-user@incubator.apache.org Date: 07/01/2008 02:22 Subject: Re: WSDLToJava Error : Thrown by JAXB : undefined element declaration 'ns1:orderBy' Hi , From the error message , I think this is caused by the inner class OrderBy is not loaded into JAXB context . Can you modify this class as a outer class and try it again ? I will look it further to see if the JAXB can not load the inner static class . Thanks Jim Monica Ferrero wrote: > Hi! > > I'm getting this error: > > WSDLToJava Error : Thrown by JAXB : undefined element declaration > 'ns1:orderBy' > > when trying to generate java stubs from the wsdl. > > > This is my original service: > > @WebService(endpointInterface = "com.aaa.bbb.ccc.MyService") > public interface MyService { > > [...] > > @WebResult(name="MyList") > @WebMethod > MyList getItems( @WebParam(name="listId") int listId); > > [...] > } > > > the MyList class: > > @XmlAccessorType(XmlAccessType.FIELD) > @XmlType(name = "", propOrder = {"items"}) > @XmlRootElement(name = "myList") > public class MyList { > > @XmlElement(required = true) > private List<Item> items; > > public List<Item> getItems() { > if (items == null) { > items = new ArrayList<Item>(); > } > return items; > } > > public void setItems(List<Item> items) { > this.items = items; > } > } > > > The Item is a JAXB generated file from a schema: > > > @XmlAccessorType(XmlAccessType.FIELD) > @XmlType(name = "", propOrder = { > "attributesPD", > "orderBy" > }) > @XmlRootElement(name = "item") > public class Item { > > @XmlElement(name = "attributes", required = true) > protected AttributesPD attributesPD; > protected Item.OrderBy orderBy; > @XmlAttribute > @XmlJavaTypeAdapter(CollapsedStringAdapter.class) > @XmlSchemaType(name = "token") > protected String id; > @XmlAttribute > @XmlJavaTypeAdapter(CollapsedStringAdapter.class) > @XmlSchemaType(name = "token") > protected String createdBy; > @XmlAttribute > @XmlSchemaType(name = "date") > protected XMLGregorianCalendar creationDate; > > public AttributesPD getAttributesPD() { > return attributesPD; > } > > public void setAttributesPD(AttributesPD value) { > this.attributesPD = value; > } > > public Item.OrderBy getOrderBy() { > return orderBy; > } > > public void setOrderBy(Item.OrderBy value) { > this.orderBy = value; > } > > public String getId() { > return id; > } > > public void setId(String value) { > this.id = value; > } > > public String getCreatedBy() { > return createdBy; > } > > public void setCreatedBy(String value) { > this.createdBy = value; > } > > public XMLGregorianCalendar getCreationDate() { > return creationDate; > } > > public void setCreationDate(XMLGregorianCalendar value) { > this.creationDate = value; > } > > > @XmlAccessorType(XmlAccessType.FIELD) > @XmlType(name = "", propOrder = { > "orderedAttributeRef" > }) > public static class OrderBy { > > @XmlElement(required = true) > protected List<OrderedAttributeRefType> orderedAttributeRef; > > public List<OrderedAttributeRefType> getOrderedAttributeRef() { > if (orderedAttributeRef == null) { > orderedAttributeRef = new > ArrayList<OrderedAttributeRefType>(); > } > return this.orderedAttributeRef; > } > } > } > > > > The wsdl generated by cxf: > > <?xml version="1.0" encoding="utf-8"?> > <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:tns="http://myservice.bbb.aaa.com/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="MyServiceImplService" > targetNamespace="http://myservice.bbb.aaa.com/"> > <wsdl:types> > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" > xmlns:tns="http://www.aaa.com/AaaOtherService" > attributeFormDefault="unqualified" elementFormDefault="qualified" > targetNamespace="http://www.aaa.com/AaaOtherService"> > [...] > <xs:element name="item"> > <xs:complexType> > <xs:sequence> > <xs:element ref="tns:attributes"/> > <xs:element minOccurs="0" > name="orderBy"> > <xs:complexType> > <xs:sequence> > <xs:element > maxOccurs="unbounded" name="orderedAttributeRef" > type="tns:orderedAttributeRefType"/> > </xs:sequence> > </xs:complexType> > </xs:element> > </xs:sequence> > <xs:attribute name="id" type="xs:token"/> > <xs:attribute name="createdBy" > type="xs:token"/> > <xs:attribute name="creationDate" > type="xs:date"/> > </xs:complexType> > </xs:element> > [...] > </xs:schema> > <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" > xmlns="http://myservice.bbb.aaa.com/" > xmlns:ns1="http://www.aaa.com/AaaOtherService" > attributeFormDefault="unqualified" elementFormDefault="unqualified" > targetNamespace="http://myservice.bbb.aaa.com/"> > <xs:import > namespace="http://www.aaa.com/AaaOtherService"/> > <xs:element name="myList"> > <xs:complexType> > <xs:sequence> > <xs:element maxOccurs="unbounded" > name="items"> > <xs:complexType> > <xs:sequence> > <xs:element > ref="ns1:attributes"/> > <xs:element > minOccurs="0" ref="ns1:orderBy"/> > </xs:sequence> > <xs:attribute name="id" > type="xs:token"/> > <xs:attribute > name="createdBy" type="xs:token"/> > <xs:attribute > name="creationDate" type="xs:date"/> > </xs:complexType> > </xs:element> > </xs:sequence> > </xs:complexType> > </xs:element> > [...] > <xs:element name="getItemsResponse" > type="getItemsResponse"/> > <xs:complexType name="getItemsResponse"> > <xs:sequence> > <xs:element minOccurs="0" ref="myList"/> > </xs:sequence> > </xs:complexType> > [...] > </xs:schema> > </wsdl:types> > [...] > </wsdl:definitions> > > > > I think it's a bit weird that it defines myList as a sequence of the > elements that form an Item, instead of a sequence of items. > Anyway I'm not sure why it does not work if it is mostly all generated > code. > Any ideas? > > Help or pointers very much appreciated! > > > Monica