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

Reply via email to