You are viewing a plain text version of this content. The canonical link for it is here.
Posted to soap-user@ws.apache.org by Scott Nichol <sn...@scottnichol.com> on 2004/06/01 15:58:17 UTC

Re: Deserializer Error

This code

 smr.mapTypes (Constants.NS_URI_SOAP_ENC,new QName ("", "querySessionBeanReturn"), null, null, sd);

provides a mapping for an element named querySessionBeanReturn that is not in a namespace.  However, the respone has this tag

 <querySessionBeanReturn xmlns="http://soap.ejb.businessobjects.a2g.infocorpnow.com">,

which specifies a namespace for this element.  You need to provide a mapping like

 smr.mapTypes(Constants.NS_URI_SOAP_ENC,
   new QName("http://soap.ejb.businessobjects.a2g.infocorpnow.com", "querySessionBeanReturn"),
   null, null, sd);

Scott Nichol

Do not send e-mail directly to this e-mail address,
because it is filtered to accept only mail from
specific mail lists.
----- Original Message ----- 
From: "nilesh" <ni...@slminfotech.com>
To: <so...@ws.apache.org>
Sent: Monday, May 31, 2004 11:03 AM
Subject: Deserializer Error


> Hi ,
> 
> I am using Apacge SOAP 2.3.1 .I keep getting the following error :
> 
> [SOAPException: faultCode=SOAP-ENV:Client; msg=No Deserializer found to deserialize a &apos; http://soap.ejb.businessobjects.a2g.infocorpnow.com:querySessionBean
> Return&apos; using encoding style &apos;null&apos;.; targetException=java.lang.IllegalArgumentException:  No Deserializer found to deserialize a 'http://soap.ejb
> .businessobjects.a2g.infocorpnow.com:querySessionBeanReturn' using encoding style 'null'.]
> 
> 
> But when i c the request and response on the TCPMON utility , itgives the following :
> 
> REQUEST :
> 
> <?xml version='1.0' encoding='UTF-8'?>
> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <SOAP-ENV:Body>
> <ns1:querySessionBean xmlns:ns1="A2GWebServiceBean" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
> <myrequest xsi:type="xsd:string">&lt;propertyBag&gt;&lt;employeeid&gt;SUPER&lt;/employeeid&gt;&lt;password&gt;MTliMjg3ZGYyM2NkZmJhYjdiYTZmMzJmNTU5ZGNhNTc=&lt;/password&gt;&lt;javaSessionBean&gt;A2G_OrganizationsSB&lt;/javaSessionBean&gt;&lt;function&gt;&lt;readDynamicQuery&gt;&lt;Query dataTag=&quot;Department&quot; maxRecords=&quot;1&quot;/&gt;&lt;/readDynamicQuery&gt;&lt;/function&gt;&lt;/propertyBag&gt;</myrequest>
> </ns1:querySessionBean>
> </SOAP-ENV:Body>
> </SOAP-ENV:Envelope>
> 
> 
> 
> RESPONSE on TCPMON :
> 
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><querySessionBeanResponse xmlns="A2GWebServiceBean"><querySessionBeanReturn xmlns="http://soap.ejb.businessobjects.a2g.infocorpnow.com">&lt;ReplyInformation&gt;&lt;ReturnObject&gt;&lt;Department address=&quot;82 Westmorland Street&quot; city=&quot;Fredericton&quot; country=&quot;Canada&quot; departmentid=&quot;SNB&quot; description=&quot;Service New Brunswick&quot; enterpriseid=&quot;PNB&quot; postalcode=&quot;E3B 5G4&quot; province=&quot;New Brunswick&quot;/&gt;&lt;Department address2=&quot; &quot; departmentid=&quot;WEBDEP&quot; description=&quot;Web Department&quot; enterpriseid=&quot;PNB&quot;/&gt;&lt;/ReturnObject&gt;&lt;ErrorObject code=&quot;0&quot; message=&quot;Success&quot;/&gt;&lt;/ReplyInformation&gt;</querySessionBeanReturn></querySessionBeanResponse></soapenv:Body></soapenv:Envelope>
> 
> 
> I'm pasting part of my java soap client used for SOAP Requests and Responses :
> 
> org.apache.soap.rpc.Call call = new org.apache.soap.rpc.Call(); 
> call.setTargetObjectURI("A2GWebServiceBean");
> call.setMethodName("querySessionBean");
> call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
> 
> org.apache.soap.transport.http.SOAPHTTPConnection conn =  new org.apache.soap.transport.http.SOAPHTTPConnection();
> conn.setUserName("SUPER");
> conn.setPassword("password");
> call.setSOAPTransport(conn);
> 
> org.apache.soap.encoding.SOAPMappingRegistry smr = new SOAPMappingRegistry ();
> 
> StringDeserializer sd = new StringDeserializer ();
>              smr.mapTypes (Constants.NS_URI_SOAP_ENC,new QName ("", "querySessionBeanReturn"), null, null, sd);
> call.getSOAPMappingRegistry();
> 
> 
> 
>  Below i'm pasting my WSDL file :
> 
> 
> <?xml version="1.0" encoding="UTF-8" ?> 
> - <wsdl:definitions targetNamespace="http://soap.ejb.businessobjects.a2g.infocorpnow.com" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://soap.ejb.businessobjects.a2g.infocorpnow.com" xmlns:intf="http://soap.ejb.businessobjects.a2g.infocorpnow.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> - <wsdl:types>
> - <schema elementFormDefault="qualified" targetNamespace="http://soap.ejb.businessobjects.a2g.infocorpnow.com" xmlns="http://www.w3.org/2001/XMLSchema">
> - <element name="querySessionBean">
> - <complexType>
> - <sequence>
>   <element name="arg_0_0" nillable="true" type="xsd:string" /> 
>   </sequence>
>   </complexType>
>   </element>
> - <element name="querySessionBeanResponse">
> - <complexType>
> - <sequence>
>   <element name="querySessionBeanReturn" nillable="true" type="xsd:string" /> 
>   </sequence>
>   </complexType>
>   </element>
>   </schema>
>   </wsdl:types>
> - <wsdl:message name="querySessionBeanRequest">
>   <wsdl:part element="impl:querySessionBean" name="parameters" /> 
>   </wsdl:message>
> + <wsdl:message name="querySessionBeanResponse">
>   <wsdl:part element="impl:querySessionBeanResponse" name="parameters" /> 
>   </wsdl:message>
> - <wsdl:portType name="A2GWebService">
> - <wsdl:operation name="querySessionBean">
>   <wsdl:input message="impl:querySessionBeanRequest" name="querySessionBeanRequest" /> 
>   <wsdl:output message="impl:querySessionBeanResponse" name="querySessionBeanResponse" /> 
>   </wsdl:operation>
>   </wsdl:portType>
> - <wsdl:binding name="A2GWebServiceBeanSoapBinding" type="impl:A2GWebService">
>   <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> 
> - <wsdl:operation name="querySessionBean">
>   <wsdlsoap:operation soapAction="" /> 
> - <wsdl:input name="querySessionBeanRequest">
>   <wsdlsoap:body use="literal" /> 
>   </wsdl:input>
> - <wsdl:output name="querySessionBeanResponse">
>   <wsdlsoap:body use="literal" /> 
>   </wsdl:output>
>   </wsdl:operation>
>   </wsdl:binding>
> - <wsdl:service name="A2GWebServiceService">
> - <wsdl:port binding="impl:A2GWebServiceBeanSoapBinding" name="A2GWebServiceBean">
>   <wsdlsoap:address location="http://aanchal:9080/a2g/services/A2GWebServiceBean" /> 
>   </wsdl:port>
>   </wsdl:service>
>   </wsdl:definitions>
> 
> 
> 
> Please help and tell me where i'm goin wrong...
> thanx
> Nilesh.
> 
>