Hi Jim,
I'm not sure I follow you. I can't see any wsdl to java log...
The logging.properties in ${CXF_HOME}/etc/logging.properties indicate the
output is taking to the console. Even if I activate the file appender there
is no information about the 'Classes known to this context' there.
If I run the wsdl to java in verbose mode, I get a bit more information
(see below), but no what we are looking for...
Thanks,
Monica
[exec] Loading FrontEnd jaxws ...
[exec] Loading DataBinding jaxb ...
[exec] <command xmlns="http://cxf.apache.org/Xutil/Command"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http:/
/cxf.apache.org/Xutil/Command
http://cxf.apache.org/schema/xutil/command.xsd">
[exec] <option name="verbose"/>
[exec] <option name="packagename">com.aaa.bbb.myservice</option>
[exec] <option name="binding">bindingsPD.xjb</option>
[exec] <argument name="wsdlurl">MyService.wsdl</argument>
[exec] </command>
[exec] wsdl2java -verbose -p com.aaa.bbb.myservice -b bindingsPD.xjb
MyService.wsdl
[exec] wsdl2java - Apache CXF (incubator) 2.0.3-incubator
[exec]
[exec]
[exec] WSDLToJava Error : Thrown by JAXB : undefined element
declaration 'ns1:orderBy'
[exec]
[exec] org.apache.cxf.tools.common.ToolException: Thrown by JAXB :
undefined element declaration 'ns1:orderBy'
[exec] at
org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBBindErrorListener.error(JAXBBindErrorListener.java:34)
[exec] at
com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.error(SchemaCompilerImpl.java:245)
[exec] at
com.sun.tools.xjc.util.ErrorReceiverFilter.error(ErrorReceiverFilter.java:61)
[exec] at
com.sun.xml.xsom.impl.parser.ParserContext$2.error(ParserContext.java:188)
[exec] at
com.sun.xml.xsom.impl.parser.ParserContext$1.reportError(ParserContext.java:166)
[exec] at
com.sun.xml.xsom.impl.parser.NGCCRuntimeEx.reportError(NGCCRuntimeEx.java:103)
[exec] at
com.sun.xml.xsom.impl.parser.DelayedRef.resolve(DelayedRef.java:91)
[exec] at
com.sun.xml.xsom.impl.parser.DelayedRef.run(DelayedRef.java:66)
[exec] at
com.sun.xml.xsom.impl.parser.ParserContext.getResult(ParserContext.java:126)
[exec] at
com.sun.xml.xsom.parser.XSOMParser.getResult(XSOMParser.java:172)
[exec] at
com.sun.tools.xjc.ModelLoader.createXSOM(ModelLoader.java:488)
[exec] at
com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:197)
[exec] at
org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:209)
[exec] at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaContainer.java:504)
[exec] at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:183)
[exec] at
org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:229)
[exec] at
org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:83)
[exec] at
org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:102)
[exec] at
org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java:171)
[exec] Caused by: org.xml.sax.SAXParseException: undefined element
declaration 'ns1:orderBy'
[exec] at
com.sun.xml.xsom.impl.parser.ParserContext$1.reportError(ParserContext.java:162)
[exec] ... 14 more
From: Jim Ma <[EMAIL PROTECTED]>
To: [email protected]
Date: 09/01/2008 02:18
Subject: Re: WSDLToJava Error : Thrown by JAXB : undefined element
declaration 'ns1:orderBy'
Hi Monica,
Forget to mention . Search it in java to wsdl 's log .
Regards
Jim
Monica Ferrero wrote:
>
> Hi Jim,
>
> Changed the logging level to FINE as you indicated and run the wsdl to
> java on my wsdl, but there is no such a message in there as "Classes
> known to this context:". I've search for "classes" and " context" as
> well and there is nothing on those lines.
> There are some exceptions that I'm not sure there are relevant. I add
> here the last one before the error.
>
> Thanks for your help,
>
> Monica
>
>
> [exec] 08-Jan-2008 10:19:57
> com.sun.xml.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory get
> [exec] FINE: Using optimized Accessor for
>
com.sun.tools.xjc.reader.xmlschema.bindinfo.BIGlobalBinding$UnderscoreBinding
> com.sun.tools.xjc.re
> ader.xmlschema.bindinfo.BIGlobalBinding.getUnderscoreBinding() and
> void
> com.sun.tools.xjc.reader.xmlschema.bindinfo.BIGlobalBinding.setUnderscore
>
Binding(com.sun.tools.xjc.reader.xmlschema.bindinfo.BIGlobalBinding$UnderscoreBinding)
> [exec] 08-Jan-2008 10:19:57
> com.sun.xml.bind.v2.runtime.reflect.opt.Injector inject
> [exec] FINE: Unable to inject
>
com/sun/tools/xjc/reader/xmlschema/bindinfo/CollectionTypeAttribute$JaxbAccessorF_collectionType
> [exec] java.lang.reflect.InvocationTargetException
> [exec] at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
> [exec] at
>
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> [exec] at java.lang.reflect.Method.invoke(Method.java:597)
> [exec] at
>
com.sun.xml.bind.v2.runtime.reflect.opt.Injector.inject(Injector.java:125)
> [...]
> [exec] at
org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java:171)
> [exec] Caused by: java.lang.LinkageError: loader (instance of
> sun/misc/Launcher$AppClassLoader): attempted duplicate class
> definition for
> name:
>
"com/sun/tools/xjc/reader/xmlschema/bindinfo/CollectionTypeAttribute$JaxbAccessorF_collectionType"
> [exec] at java.lang.ClassLoader.defineClass1(Native Method)
> [exec] at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
> [exec] at java.lang.ClassLoader.defineClass(ClassLoader.java:465)
> [exec] ... 84 more
>
> Inactive hide details for Jim Ma ---08/01/2008 02:56:05---Hi
> Monica,Jim Ma ---08/01/2008 02:56:05---Hi Monica,
>
>
> From:
> Jim Ma <[EMAIL PROTECTED]>
>
> To:
> [email protected]
>
> Date:
> 08/01/2008 02:56
>
> Subject:
> Re: WSDLToJava Error : Thrown by JAXB : undefined element declaration
> 'ns1:orderBy'
>
> ------------------------------------------------------------------------
>
>
>
> Hi Monica,
>
> You can change the log level to FINE (modify the log configuration file
> under ${CXF_HOME}/etc/logging.properties)
> to see if the OrderBy classes added to JAXB Context when you run
> java2wsdl tool .
>
> Search "Classes known to this context:" in the log file to see if this
> class is known to JAXB.
>
> Regards
>
> Jim
>
>
> Monica Ferrero wrote:
> >
> > 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
> >
> > Inactive hide details for Jim Ma ---07/01/2008 02:22:26---Hi ,Jim Ma
> > ---07/01/2008 02:22:26---Hi ,
> >
> >
> > From:
> > Jim Ma <[EMAIL PROTECTED]>
> >
> > To:
> > [email protected]
> >
> > 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