0

I'm trying to create service using Apache Axis 2. Part of the service need to be generated from WSDL file, so I'm using org.apache.axis2.wsdl.WSDL2Java to do this. I've created following WSDL file:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://webservice.dummy.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://webservice.dummy.com">

    <types>
        <schema targetNamespace="http://webservice.dummy.com" xmlns:tns="http://webservice.dummy.com" xmlns="http://www.w3.org/2000/10/XMLSchema" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <element name="tns:BodyData">
                <complexType>
                    <all>
                        <element name="price" type="xsd:float"/>
                    </all>
                </complexType>
            </element>
        </schema>
    </types>

     <wsdl:message name="CreateResp">
        <wsdl:part name="CreateResp" element="xsd:int"/>
    </wsdl:message>
    <wsdl:message name="CreateReq">
        <wsdl:part name="CreateReq" element="tns:BodyData"/>
    </wsdl:message>

</wsdl:definitions>

But WSDL2Java fails to validate this file and shows following:

[java] at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:293) [java] at org.apache.axis2.wsdl.WSDL2Code.main(WSDL2Code.java:35) [java] at org.apache.axis2.wsdl.WSDL2Java.main(WSDL2Java.java:24) [java] Caused by: org.apache.axis2.wsdl.codegen.CodeGenerationException: org.apache.axis2.wsdl.databinding.UnmatchedTypeException: No type was mapped to the name BodyData with namespace http://webservice.dummy.com [java] at org.apache.axis2.wsdl.codegen.emitter.AxisServiceBasedMultiLanguageEmitter.emitSkeleton(AxisServiceBasedMultiLanguageEmitter.java:1451) [java] at org.apache.axis2.wsdl.codegen.CodeGenerationEngine.generate(CodeGenerationEngine.java:275) [java] ... 2 more

Can someone explain what's wrong with my wsdl file?

BSen
  • 187
  • 2
  • 16

1 Answers1

0

Instead of <element name="tns:BodyData">, it should be <element name="BodyData">.

Andreas Veithen
  • 8,868
  • 3
  • 25
  • 28