I do .. its because SOAP (v1.1 at least) does not have a fixed rule for determining the response encoding style. So there's a heuristic in Apache SOAP; see org.apache.soap.server.RPCRouter.java's invoke method. Basically it picks the encoding style of the method call element if its there and if not keeps looking for the enc style from the parameters until it finds one. If none is found it defaults to SOAP-Enc.
I don't see the incoming SOAP message below, but I imagine it had SOAP encoding style set on the call envelope. That's basically the reason .. Bye, Sanjiva. ----- Original Message ----- From: "Scott Nichol" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Friday, October 25, 2002 4:50 AM Subject: Re: solution to deserializing an org.w3c.dom.Element in a SOAP client > I'm glad you have a working solution. It still does not answer why the > response is SOAP encoded instead of literal XML. Do you know why? > > Scott Nichol > > ----- Original Message ----- > From: "David Q Levitt" <[EMAIL PROTECTED]> > To: <[EMAIL PROTECTED]> > Sent: Thursday, October 24, 2002 5:28 PM > Subject: solution to deserializing an org.w3c.dom.Element in a SOAP > client > > > > > > > > > > > > I found the answer: > > > > SOAPMappingRegistry smr = new SOAPMappingRegistry(); > > XMLParameterSerializer xmlSer = new XMLParameterSerializer(); > > > > // Map the types. > > smr.mapTypes(Constants.NS_URI_SOAP_ENC, > > new QName("http://xml.apache.org/xml-soap", > "Element"), > > org.w3c.dom.Element.class, xmlSer, xmlSer); > > > > // Build the call. > > Call call = new Call(); > > > > call.setSOAPMappingRegistry(smr); > > > > > > > > > > David Q > > Levitt/Cambridge To: > [EMAIL PROTECTED] > > /IBM@IBMUS cc: > > Subject: Re: > deserializing an org.w3c.dom.Element in a SOAP client > > 10/24/2002 04:36 > > PM > > Please respond > > to soap-user > > > > > > > > > > > > > > > > > > > > > > Here is what the TCPMON tool shows that I am getting back from the web > > service: > > > > <?xml version="1.0" encoding="UTF-8"?> > > <soapenv:Envelope > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" > > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > > <soapenv:Body> > > <ns1:searchResponse > > soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > > xmlns:ns1="urn:LLSXMLTrial"> > > <searchReturn xsi:type="ns2:Element" > > xmlns:ns2="http://xml.apache.org/xml-soap"> > > <courses> > > <course title="Intro to Computer Science"/> > > </courses> > > </searchReturn> > > </ns1:searchResponse> > > </soapenv:Body> > > </soapenv:Envelope> > > > > I think what the > soapCall.setEncodingStyleURI(Constants.NS_URI_LITERAL_XML) > > statement does is to request that the server return its response as > Literal > > XML. In the response above, the line <searchReturn > > xsi:type="ns2:Element" xmlns:ns2="http://xml.apache.org/xml-soap"> and > the > > subsequent XML (<courses>...., etc) indicates that the service is > returning > > the data in the literal XML encoding as requested. However, it > appears > > that deserializing the XML into an Element object requires a separate > > mechanism - probably a type mapping - which is where I'm having > difficulty. > > > > Any ideas? > > > > - Dave > > ----- Forwarded by David Q Levitt/Cambridge/IBM on 10/24/2002 04:30 PM > > ----- > > > > Scott Nichol > > > > <snicholnews@scott To: > > [EMAIL PROTECTED] > > > > nichol.com> cc: > > > > Subject: Re: > deserializing > > an org.w3c.dom.Element in a SOAP client > > 10/24/2002 04:21 > > > > PM > > > > Please respond to > > > > soap-user > > > > > > > > > > > > > > Using literal XML, as you show below, should allow you to deserializer > > an Element, assuming it was serialized using literal XML on the > sending > > side. > > > > Scott Nichol > > > > ----- Original Message ----- > > From: "David Q Levitt" <[EMAIL PROTECTED]> > > To: <[EMAIL PROTECTED]> > > Sent: Thursday, October 24, 2002 3:50 PM > > Subject: deserializing an org.w3c.dom.Element in a SOAP client > > > > > > > > > > > > > > > > > > > Is there a way to deserialize an org.w3c.dom.Element in a SOAP > client > > ? I > > > am using > > > soapCall.setEncodingStyleURI(Constants.NS_URI_LITERAL_XML); > > > but apparently that's not enough. > > > > > > Do I need to create a mapping registry for deserializing > > > org.w3c.dom.Element and if so what deserializer do I register? or > do > > I > > > have to create my own? > > > > > > Thanks, > > > > > > Dave Levitt > > > > > > > > > -- > > > To unsubscribe, e-mail: > > <mailto:soap-user-unsubscribe@;xml.apache.org> > > > For additional commands, e-mail: > > <mailto:soap-user-help@;xml.apache.org> > > > > > > > > > > > > -- > > To unsubscribe, e-mail: > <mailto:soap-user-unsubscribe@;xml.apache.org> > > For additional commands, e-mail: > <mailto:soap-user-help@;xml.apache.org> > > > > > > > > > > > > -- > > To unsubscribe, e-mail: > <mailto:soap-user-unsubscribe@;xml.apache.org> > > For additional commands, e-mail: > <mailto:soap-user-help@;xml.apache.org> > > > > > > > > > > > > -- > > To unsubscribe, e-mail: > <mailto:soap-user-unsubscribe@;xml.apache.org> > > For additional commands, e-mail: > <mailto:soap-user-help@;xml.apache.org> > > > > > > > -- > To unsubscribe, e-mail: <mailto:soap-user-unsubscribe@;xml.apache.org> > For additional commands, e-mail: <mailto:soap-user-help@;xml.apache.org> -- To unsubscribe, e-mail: <mailto:soap-user-unsubscribe@;xml.apache.org> For additional commands, e-mail: <mailto:soap-user-help@;xml.apache.org>