Hi,
When I use a Mp serializer in the wsdd file the wsdl file generated is
wrong.It puts the name of the complex type as "map" and not as the name of
the parameter "searchParams"(Please refer to the wsdl listing below). When I
try to generate client code it gives following error :

java.io.IOException: Type http://soapinterop.org/xsd:searchParams is
referenced
but not defined.
        at org.apache.axis.wsdl.toJava.SymbolTable.checkForUndefined(Unknown
Sou
rce)
        at org.apache.axis.wsdl.toJava.SymbolTable.add(Unknown Source)
        at org.apache.axis.wsdl.toJava.Emitter.emit(Unknown Source)
        at org.apache.axis.wsdl.toJava.Emitter.emit(Unknown Source)
        at org.apache.axis.wsdl.WSDL2Java.emit(Unknown Source)
        at org.apache.axis.wsdl.WSDL2Java.main(Unknown Source)


Is this a bug or am I doing something wrong?


Thanks in advance
Vaidya 



/////
wsdd file : 

<deployment xmlns="http://xml.apache.org/axis/wsdd/";
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java";>
  <service name="urn:eMatrixSearch" provider="java:RPC" >
    <parameter name="className"
value="com.crd.rad.searchfwk.ExecuteSearchImpl"/>
    <parameter name="methodName" value="performSearch"/>
        <typeMapping
        xmlns:ns="http://soapinterop.org/xsd";
        qname="ns:searchParams"
        type="java:java.util.HashMap"
        serializer="org.apache.axis.encoding.ser.MapSerializerFactory"
        deserializer="org.apache.axis.encoding.ser.MapDeserializerFactory"
        encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
        />
  </service>
</deployment>


//////
wsdl file generated by Axis:



  <?xml version="1.0" encoding="UTF-8" ?> 
- <wsdl:definitions
targetNamespace="http://localhost:8080/axis/services/urn:eMatrixSearch";
xmlns="http://schemas.xmlsoap.org/wsdl/";
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:impl="http://localhost:8080/axis/services/urn:eMatrixSearch-impl";
xmlns:intf="http://localhost:8080/axis/services/urn:eMatrixSearch";
xmlns:tns1="http://soapinterop.org/xsd";
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
- <types>
- <schema targetNamespace="http://xml.apache.org/xml-soap";
xmlns="http://www.w3.org/2001/XMLSchema";>
- <complexType name="Map">
- <sequence>
- <element maxOccurs="unbounded" minOccurs="0" name="item">
- <complexType>
- <all>
  <element name="key" type="xsd:anyType" /> 
  <element name="value" type="xsd:anyType" /> 
  </all>
  </complexType>
  </element>
  </sequence>
  </complexType>
  </schema>
- <schema targetNamespace="http://soapinterop.org/xsd";
xmlns="http://www.w3.org/2001/XMLSchema";>
  <element name="searchParams" nillable="true" type="tns1:searchParams" /> 
  </schema>
- <schema
targetNamespace="http://localhost:8080/axis/services/urn:eMatrixSearch";
xmlns="http://www.w3.org/2001/XMLSchema";>
- <complexType name="ArrayOf_xsd_string">
- <complexContent>
- <restriction base="SOAP-ENC:Array">
  <attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="xsd:string[]" /> 
  </restriction>
  </complexContent>
  </complexType>
  <element name="ArrayOf_xsd_string" nillable="true"
type="intf:ArrayOf_xsd_string" /> 
  </schema>
  </types>
- <wsdl:message name="performSearchRequest">
  <wsdl:part name="searchParams" type="tns1:searchParams" /> 
  <wsdl:part name="fileURL" type="xsd:string" /> 
  <wsdl:part name="userID" type="xsd:string" /> 
  <wsdl:part name="passWord" type="xsd:string" /> 
  <wsdl:part name="vault" type="xsd:string" /> 
  </wsdl:message>
- <wsdl:message name="performSearchResponse">
  <wsdl:part name="return" type="intf:ArrayOf_xsd_string" /> 
  </wsdl:message>
- <wsdl:portType name="ExecuteSearchImpl">
- <wsdl:operation name="performSearch" parameterOrder="searchParams fileURL
userID passWord vault">
  <wsdl:input message="intf:performSearchRequest" /> 
  <wsdl:output message="intf:performSearchResponse" /> 
  </wsdl:operation>
  </wsdl:portType>
- <wsdl:binding name="urn:eMatrixSearchSoapBinding"
type="intf:ExecuteSearchImpl">
  <wsdlsoap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"; /> 
- <wsdl:operation name="performSearch">
  <wsdlsoap:operation soapAction="" /> 
- <wsdl:input>
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="http://localhost:8080/axis/services/urn:eMatrixSearch";
use="encoded" /> 
  </wsdl:input>
- <wsdl:output>
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
namespace="http://localhost:8080/axis/services/urn:eMatrixSearch";
use="encoded" /> 
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
- <wsdl:service name="ExecuteSearchImplService">
- <wsdl:port binding="intf:urn:eMatrixSearchSoapBinding"
name="urn:eMatrixSearch">
  <wsdlsoap:address
location="http://localhost:8080/axis/services/urn:eMatrixSearch"; /> 
  </wsdl:port>
  </wsdl:service>
  </wsdl:definitions>


"THIS E-MAIL MESSAGE ALONG WITH ANY ATTACHMENTS IS INTENDED ONLY FOR THE
ADDRESSEE and may contain confidential and privileged information.
If the reader of this message is not the intended recipient,
you are notified that any dissemination, distribution or copy of this 
communication is strictly Prohibited. 
If you have received this message by error, please notify us 
immediately, return the original mail to the sender and delete the 
message from your system."

Reply via email to