Yes, but David claims in his original e-mail he was doing

         soapCall.setEncodingStyleURI(Constants.NS_URI_LITERAL_XML);

Given this, I expected a literal XML response as you have described.
Further, given a SOAP encoded message being sent, the service's
deployment descriptor would have to specify a mapping for Element, as
the SOAPMappingRegistry only creates an implicit mapping for Element
with literal XML encoding.

Scott Nichol

----- Original Message -----
From: "Sanjiva Weerawarana" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, October 24, 2002 11:02 PM
Subject: Re: solution to deserializing an org.w3c.dom.Element in a SOAP
client


> 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>
>
>


--
To unsubscribe, e-mail:   <mailto:soap-user-unsubscribe@;xml.apache.org>
For additional commands, e-mail: <mailto:soap-user-help@;xml.apache.org>

Reply via email to