Re: Deserializer Error

"Scott Nichol" <[email protected]>
Newsgroups gmane.text.xml.soap.user
Message-ID <004201c447e0$7e2273d0$6401a8c0@northgate>
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" <[email protected]>
To: <[email protected]>
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.
> 
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.