Hi Vaidya!

Well, the MapSerializer is responsible for writing out the <complexType> declaration, 
and it expects to be writing the "xml-soap:Map" type, since that's the interoperable 
name for the Map encoding which a bunch of SOAP toolkits support.  This type is 
automatically mapped in Axis.

So if you just remove the <typeMapping> in your WSDD, this should work fine.

--Glen

> -----Original Message-----
> From: Vaidya, Raghavendra (CORP, GEITC)
> [mailto:[EMAIL PROTECTED]]
> Sent: Friday, March 22, 2002 6:11 AM
> To: [EMAIL PROTECTED]
> Subject: Using Map Serializer
> 
> 
> 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:eMatr
> ixSearch"
> xmlns="http://schemas.xmlsoap.org/wsdl/";
> xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/";
> xmlns:impl="http://localhost:8080/axis/services/urn:eMatrixSea
> rch-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:eMatr
> ixSearch"
> 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