Hi ,

I used eclipse stp to validate this wsdl and found two errors : in this line <element minOccurs="0" name="id" nillable="true" type="ns0:UUID"/>, the namespace prefix ns0 is not defined . in this line <element minOccurs="0" name="context" nillable="true" type="ns1:Context"/> , context element can not be found in ns1 namespace ,
it's defined in namespace "http://metadata.core.lor.rbx.com"; .

Cheers
Jim



Julio Arias wrote:
Hi Jim -

I partially fix this, I change the data binding to Aegis (now the map has a type in the WSDL) but now I get a different problem with wsdl2java The WSDL looks very similar at the one generated by xFire I think there is a problem with the WSDL namespaces but I'm not sure what.
This is the WSDL:

<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions name="MetadataService" targetNamespace="http://lor.rbx.com/ws/metadata"; xmlns:ns1="http://lor.rbx.com/ws/metadata"; xmlns:ns2="urn:com:rbx:lor:ws:model" xmlns:ns3="http://util.java"; xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"; xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
  <wsdl:types>
<schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://metadata.core.lor.rbx.com"; xmlns="http://www.w3.org/2001/XMLSchema";>
<simpleType name="DocumentLanguage">
<restriction base="string">
<enumeration value="Any"/>
<enumeration value="English"/>
</restriction>
</simpleType>
<simpleType name="DocumentDegreeInteractivity">
<restriction base="string">
<enumeration value="Any"/>
<enumeration value="VeryLow"/>
<enumeration value="Low"/>
<enumeration value="Medium"/>

<enumeration value="High"/>
<enumeration value="VeryHigh"/>
</restriction>
</simpleType>
<simpleType name="DocumentFormat">
<restriction base="string">
<enumeration value="Any"/>
<enumeration value="HTML_XHTML"/>
<enumeration value="SHOWCKWAVE_FLASH"/>
<enumeration value="FLASH_VIDEO"/>
<enumeration value="JPEG"/>
<enumeration value="GIF"/>
<enumeration value="MPEG"/>
<enumeration value="PDF"/>
<enumeration value="MSWORD"/>
<enumeration value="MSEXCEL"/>
<enumeration value="MSPOWERPOINT"/>

<enumeration value="XML"/>
</restriction>
</simpleType>
<simpleType name="DocumentDifficulty">
<restriction base="string">
<enumeration value="Any"/>
<enumeration value="VeryLow"/>
<enumeration value="Low"/>
<enumeration value="Medium"/>
<enumeration value="High"/>
<enumeration value="VeryHigh"/>
</restriction>
</simpleType>
<simpleType name="DocumentLearningResourceType">
<restriction base="string">
<enumeration value="Any"/>
<enumeration value="Excercise"/>

<enumeration value="Simulation"/>
<enumeration value="Questionnaire"/>
<enumeration value="Diagram"/>
<enumeration value="Figure"/>
<enumeration value="Graph"/>
<enumeration value="Index"/>
<enumeration value="Slide"/>
<enumeration value="Table"/>
<enumeration value="NarrativeText"/>
<enumeration value="Exam"/>
<enumeration value="Experiment"/>
<enumeration value="ProblemStatement"/>
<enumeration value="SelfAssesment"/>
</restriction>
</simpleType>
<simpleType name="DocumentIntendedEndUser">
<restriction base="string">

<enumeration value="Any"/>
<enumeration value="Teacher"/>
<enumeration value="Author"/>
<enumeration value="Learner"/>
<enumeration value="Manager"/>
</restriction>
</simpleType>
<simpleType name="Context">
<restriction base="string">
<enumeration value="Any"/>
<enumeration value="PrimaryEducation"/>
<enumeration value="SecondaryEducation"/>
<enumeration value="HigherEducation"/>
<enumeration value="UniversityFirstCycle"/>
<enumeration value="UniversitySecondCycle"/>
<enumeration value="UniversityPostgrade"/>
<enumeration value="TechnicalSchoolFirstCycle"/>

<enumeration value="TechnicalSchoolSecondCycle"/>
<enumeration value="ProfessionalFormation"/>
<enumeration value="ContinuousFormation"/>
<enumeration value="VocationalTraining"/>
</restriction>
</simpleType>
<simpleType name="DocumentStatus">
<restriction base="string">
<enumeration value="Any"/>
<enumeration value="Draft"/>
<enumeration value="Final"/>
<enumeration value="Revised"/>
<enumeration value="Unavailable"/>
</restriction>
</simpleType>
<simpleType name="DocumentInteractivityType">
<restriction base="string">

<enumeration value="Any"/>
<enumeration value="Active"/>
<enumeration value="Expositive"/>
<enumeration value="Mixed"/>
<enumeration value="Undefined"/>
</restriction>
</simpleType>
</schema>

<schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://lor.rbx.com/ws/metadata"; xmlns="http://www.w3.org/2001/XMLSchema";>
<complexType name="anyType2anyTypeMap">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="entry">
<complexType>
<sequence>
<element minOccurs="0" name="key" type="anyType"/>
<element minOccurs="0" name="value" type="anyType"/>

</sequence>
</complexType>
</element>
</sequence>
</complexType>
</schema>

<schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="urn:com:rbx:lor:ws:model" xmlns="http://www.w3.org/2001/XMLSchema"; xmlns:ns0="http://util.java"; xmlns:ns1="http://metadata.core.lor.rbx.com";>
<complexType name="User">
<sequence>
<element minOccurs="0" name="firstName" nillable="true" type="string"/>
<element minOccurs="0" name="id" nillable="true" type="ns0:UUID"/>
<element minOccurs="0" name="lastName" nillable="true" type="string"/>
<any maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="Metadata">

<sequence>
<element minOccurs="0" name="ageFrom" type="int"/>
<element minOccurs="0" name="ageTo" type="int"/>
<element minOccurs="0" name="context" nillable="true" type="ns1:Context"/> <element minOccurs="0" name="coverage" nillable="true" type="ns3:Coverage"/>
<element minOccurs="0" name="creator" nillable="true" type="ns3:User"/>
<element minOccurs="0" name="degreeInteractivity" nillable="true" type="ns1:DocumentDegreeInteractivity"/>
<element minOccurs="0" name="description" nillable="true" type="string"/>
<element minOccurs="0" name="difficulty" nillable="true" type="ns1:DocumentDifficulty"/> <element minOccurs="0" name="format" nillable="true" type="ns1:DocumentFormat"/>
<element minOccurs="0" name="id" nillable="true" type="ns0:UUID"/>
<element minOccurs="0" name="intendedUser" nillable="true" type="ns1:DocumentIntendedEndUser"/> <element minOccurs="0" name="interactivityType" nillable="true" type="ns1:DocumentInteractivityType"/> <element minOccurs="0" name="keywords" nillable="true" type="ns3:ArrayOfKeyword"/> <element minOccurs="0" name="language" nillable="true" type="ns1:DocumentLanguage"/>
<element minOccurs="0" name="lastUpdate" type="dateTime"/>
<element minOccurs="0" name="owner" nillable="true" type="ns3:User"/>

<element minOccurs="0" name="rating" type="int"/>
<element minOccurs="0" name="resourceType" nillable="true" type="ns1:DocumentLearningResourceType"/>
<element minOccurs="0" name="size" type="int"/>
<element minOccurs="0" name="status" nillable="true" type="ns1:DocumentStatus"/> <element minOccurs="0" name="subject" nillable="true" type="ns3:Subject"/>
<element minOccurs="0" name="title" nillable="true" type="string"/>
<element minOccurs="0" name="version" nillable="true" type="string"/>
<any maxOccurs="unbounded"/>
</sequence>
</complexType>
<complexType name="Coverage">
<sequence>
<element minOccurs="0" name="id" nillable="true" type="ns0:UUID"/>
<element minOccurs="0" name="value" nillable="true" type="string"/>
<any maxOccurs="unbounded"/>
</sequence>
</complexType>

<complexType name="ArrayOfKeyword">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="Keyword" nillable="true" type="ns3:Keyword"/>
</sequence>
</complexType>
<complexType name="Subject">
<sequence>
<element minOccurs="0" name="id" nillable="true" type="ns0:UUID"/>
<element minOccurs="0" name="value" nillable="true" type="string"/>
<any maxOccurs="unbounded"/>
</sequence>
</complexType>
</schema>

<schema attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://util.java"; xmlns="http://www.w3.org/2001/XMLSchema";>
<complexType name="UUID">
<sequence>

<element minOccurs="0" name="leastSignificantBits" type="long"/>
<element minOccurs="0" name="mostSignificantBits" type="long"/>
</sequence>
</complexType>
</schema>

  </wsdl:types>
  <wsdl:message name="updateMetadata">
    <wsdl:part name="metadata" type="ns2:Metadata">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getMap">

    <wsdl:part name="arg0" type="ns1:anyType2anyTypeMap">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getDocumentMetadata">
    <wsdl:part name="documentID" type="ns3:UUID">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="updateMetadataResponse">
  </wsdl:message>

  <wsdl:message name="getMapResponse">
    <wsdl:part name="return" type="ns1:anyType2anyTypeMap">
    </wsdl:part>
  </wsdl:message>
  <wsdl:message name="getDocumentMetadataResponse">
    <wsdl:part name="metadata" type="ns2:Metadata">
    </wsdl:part>
  </wsdl:message>
  <wsdl:portType name="MetadataService">

    <wsdl:operation name="updateMetadata">
      <wsdl:input message="ns1:updateMetadata" name="updateMetadata">
    </wsdl:input>
<wsdl:output message="ns1:updateMetadataResponse" name="updateMetadataResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getDocumentMetadata">
<wsdl:input message="ns1:getDocumentMetadata" name="getDocumentMetadata">
    </wsdl:input>

<wsdl:output message="ns1:getDocumentMetadataResponse" name="getDocumentMetadataResponse">
    </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getMap">
      <wsdl:input message="ns1:getMap" name="getMap">
    </wsdl:input>
      <wsdl:output message="ns1:getMapResponse" name="getMapResponse">
    </wsdl:output>
    </wsdl:operation>

  </wsdl:portType>
<wsdl:binding name="MetadataServiceSoapBinding" type="ns1:MetadataService"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="updateMetadata">
      <soap:operation soapAction="" style="rpc"/>
      <wsdl:input name="updateMetadata">
<soap:body namespace="http://lor.rbx.com/ws/metadata"; use="literal"/>
      </wsdl:input>
      <wsdl:output name="updateMetadataResponse">

<soap:body namespace="http://lor.rbx.com/ws/metadata"; use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getDocumentMetadata">
      <soap:operation soapAction="" style="rpc"/>
      <wsdl:input name="getDocumentMetadata">
<soap:body namespace="http://lor.rbx.com/ws/metadata"; use="literal"/>
      </wsdl:input>
      <wsdl:output name="getDocumentMetadataResponse">

<soap:body namespace="http://lor.rbx.com/ws/metadata"; use="literal"/>
      </wsdl:output>
    </wsdl:operation>
    <wsdl:operation name="getMap">
      <soap:operation soapAction="" style="rpc"/>
      <wsdl:input name="getMap">
<soap:body namespace="http://lor.rbx.com/ws/metadata"; use="literal"/>
      </wsdl:input>
      <wsdl:output name="getMapResponse">

<soap:body namespace="http://lor.rbx.com/ws/metadata"; use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="MetadataService">
<wsdl:port binding="ns1:MetadataServiceSoapBinding" name="MetadataServiceImplPort"> <soap:address location="http://localhost:8080/lor/services/MetadataService"/>
    </wsdl:port>
  </wsdl:service>

</wsdl:definitions>

And this is the error:

WSDLToJava Error : Thrown by JAXB : undefined simple or complex type 'ns3:Coverage'

org.apache.cxf.tools.common.ToolException: Thrown by JAXB : undefined simple or complex type 'ns3:Coverage' at org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBBindErrorListener.error(JAXBBindErrorListener.java:34) at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.error(SchemaCompilerImpl.java:245) at com.sun.tools.xjc.util.ErrorReceiverFilter.error(ErrorReceiverFilter.java:61) at com.sun.xml.xsom.impl.parser.ParserContext$2.error(ParserContext.java:188) at com.sun.xml.xsom.impl.parser.ParserContext$1.reportError(ParserContext.java:166) at com.sun.xml.xsom.impl.parser.NGCCRuntimeEx.reportError(NGCCRuntimeEx.java:103) at com.sun.xml.xsom.impl.parser.DelayedRef.resolve(DelayedRef.java:91) at com.sun.xml.xsom.impl.parser.DelayedRef.run(DelayedRef.java:66) at com.sun.xml.xsom.impl.parser.ParserContext.getResult(ParserContext.java:126) at com.sun.xml.xsom.parser.XSOMParser.getResult(XSOMParser.java:172)
        at com.sun.tools.xjc.ModelLoader.createXSOM(ModelLoader.java:488)
at com.sun.tools.xjc.api.impl.s2j.SchemaCompilerImpl.bind(SchemaCompilerImpl.java:197) at org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.initialize(JAXBDataBinding.java:123) at org.apache.cxf.tools.wsdlto.databinding.jaxb.JAXBDataBinding.generate(JAXBDataBinding.java:163) at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.generateTypes(WSDLToJavaContainer.java:483) at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:168) at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:215) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:84) at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:102) at org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java:171) Caused by: org.xml.sax.SAXParseException: undefined simple or complex type 'ns3:Coverage' at com.sun.xml.xsom.impl.parser.ParserContext$1.reportError(ParserContext.java:162)
        ... 15 more


On Jul 19, 2007, at 8:06 PM, Jim Ma wrote:

Hi ,
The generated wsdl seems invalid**. Can you also paste the wsdl you generated?
Cheers

Jim

Julio Arias wrote:
Hi -

I have the following web method, we are using JAXB binding but the WSDL generator doesn't create a complex type for the returning(or param) map thus wsdl2java blows up with the following exception(see below). Xfire use to create a complex type in the WSDL for this. Do I need a special annotation?

@WebMethod
Map<Long, MetadataVO> getMap(Map<Long, String> param);

-------------------------------------------------------------------------------------

WSDLToJava Error : java.lang.NullPointerException

org.apache.cxf.tools.common.ToolException: java.lang.NullPointerException at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:223) at org.apache.cxf.tools.common.toolspec.ToolRunner.runTool(ToolRunner.java:84) at org.apache.cxf.tools.wsdlto.WSDLToJava.run(WSDLToJava.java:102) at org.apache.cxf.tools.wsdlto.WSDLToJava.main(WSDLToJava.java:171)
Caused by: java.lang.NullPointerException
at org.apache.ws.commons.schema.XmlSchemaCollection.getElementByQName(XmlSchemaCollection.java:372) at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildMessage(WSDLServiceBuilder.java:775) at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildInterfaceOperation(WSDLServiceBuilder.java:578) at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildInterface(WSDLServiceBuilder.java:561) at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:251) at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:154) at org.apache.cxf.wsdl11.WSDLServiceBuilder.buildServices(WSDLServiceBuilder.java:143) at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:142) at org.apache.cxf.tools.wsdlto.WSDLToJavaContainer.execute(WSDLToJavaContainer.java:215)
        ... 3 more






Julio Arias
Java Developer
Roundbox Global : enterprise : technology : genius
---------------------------------------------------------------------
Avenida 11 y Calle 7-9, Barrio Amón, San Jose, Costa Rica
tel: 404.567.5000 ext. 2001 | cell: 11.506.849.5981
email: [EMAIL PROTECTED] | www.rbxglobal.com
---------------------------------------------------------------------






Julio Arias
Java Developer
Roundbox Global : enterprise : technology : genius
---------------------------------------------------------------------
Avenida 11 y Calle 7-9, Barrio Amón, San Jose, Costa Rica
tel: 404.567.5000 ext. 2001 | cell: 11.506.849.5981
email: [EMAIL PROTECTED] | www.rbxglobal.com
---------------------------------------------------------------------


Reply via email to