Closed Bug 221505 Opened 21 years ago Closed 20 years ago

Can't find a decoder for a simple complexType

Categories

(Core Graveyard :: Web Services, defect)

x86
All
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: doronr, Unassigned)

Details

WSDL: http://nexgenmedia.net/evang/wsdom.wsdl

Am calling getCommand():

Asynchronous Request:
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:enc="h
ttp://schemas.xmlsoap.org/soap/encoding/" env:encodingStyle="http://schemas.xmls
oap.org/soap/encoding/" xmlns:xs="http://www.w3.org/1999/XMLSchema" xmlns:xsi="h
ttp://www.w3.org/1999/XMLSchema-instance"><env:Header/><env:Body><a0:getCommand
xmlns:a0="urn:WSDOM"/></env:Body></env:Envelope>

Asynchronous Response:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmln
s:xsd="http://www.w3.org/1999/XMLSchema" xmlns:xsi="http://www.w3.org/1999/XMLSc
hema-instance">
 <soapenv:Body>
  <ns1:getCommandResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap
/encoding/" xmlns:ns1="urn:WSDOM">
   <getCommandReturn xsi:type="ns1:DOMCommand" xmlns:xsi="http://www.w3.org/2001
/XMLSchema-instance">
    <commandName xsi:type="ns2:string" xmlns:ns2="http://www.w3.org/2001/XMLSche
ma">appendChild</commandName>
    <elementID xsi:type="ns3:string" xmlns:ns3="http://www.w3.org/2001/XMLSchema
">foopy</elementID>
   </getCommandReturn>
  </ns1:getCommandResponse>
 </soapenv:Body>
</soapenv:Envelope>

in wspcallcontext.cpp, line 353:

      nsCOMPtr<nsIVariant> value;
      rv = block->GetValue(getter_AddRefs(value));
      if (NS_FAILED(rv) || !value) {
        goto call_completion_end;
      }

value is empty, so we quit.  GetValue seems to fail due to not finding a decoder
(nsSOAPEncoding::Decode).

I tried debugging it afurthur, seems in nsdefaultsoapencoder.cpp, line 2016, we
have a for(;;) loop looking for a decoder.  It finds the DOMCommand one, but
continues too go up the chain (so for some reason it thinks the DOMCommand
decoder is not the one it wants) and finds AnyType, then I stopped debugging it.
nssoapencoding.cpp 
nsSOAPEncoding:GetDecoder

seems to walk a hash of decoders, and doesn't seem to find any for
urn:WSDOM#DOMCommand.
jst: do you by chance know where we process the wsdl file and create the
decoders and encoders for the complex types in the file?  I can't seem to find
that place.

tried to debug an working complexType example (amazon), and it seems to get the
AnyType decoder. So "decoder" is a ptr to an nsAnyTypeEncoder.

Not sure why its not doing this for the apache axis one.
Assignee: harishd → web-services
darin fixed this.
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.