Micah Armantrout
Micah Armantrout

Reputation: 6971

Invalid Soap Call

Why doesn't this soap call work for this URL ?

http://services.aonaware.com/DictService/DictService.asmx?op=Define

<v:Envelope xmlns:i="http://www.w3.org/1999/XMLSchema-instance" xmlns:d="http://www.w3.org/1999/XMLSchema" xmlns:c="http://schemas.xmlsoap.org/soap/encoding/" xmlns:v="http://schemas.xmlsoap.org/soap/envelope/">
    <v:Header />
    <v:Body>
        <Define xmlns="http://tempuri.org/" id="o0" c:root="1">
            <word i:type="d:string">Name</word>
        </Define>
    </v:Body>
</v:Envelope>

But this one does

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://services.aonaware.com/webservices/">
   <soapenv:Header/>
   <soapenv:Body>
      <web:Define>
         <!--Optional:-->
         <web:word>Test</web:word>
      </web:Define>
   </soapenv:Body>
</soapenv:Envelope>

Upvotes: 0

Views: 547

Answers (1)

albciff
albciff

Reputation: 18507

Because they are different: not only in content but also in namespace definition, to correct the first one you've to atleast use the correct namespace so use http://services.aonaware.com/webservices/ for your <Define> element as you do in the second one:

<v:Envelope xmlns:i="http://www.w3.org/1999/XMLSchema-instance" xmlns:d="http://www.w3.org/1999/XMLSchema" xmlns:c="http://schemas.xmlsoap.org/soap/encoding/" xmlns:v="http://schemas.xmlsoap.org/soap/envelope/">
    <v:Header />
    <v:Body>
        <Define xmlns="http://services.aonaware.com/webservices/" id="o0" c:root="1">
            <word i:type="d:string">Name</word>
        </Define>
    </v:Body>
</v:Envelope>

Then make sure also that id an c:root are valid attributes in your xsd for <Definition> and i:type it's a correct one for <word>.

EDIT

I invoke http://services.aonaware.com/DictService/DictService.asmx with SOAPUI using my corrected request and it response correctly:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
   <soap:Body>
      <DefineResponse xmlns="http://services.aonaware.com/webservices/">
         <DefineResult>
            <Word>Name</Word>
            <Definitions>
               <Definition>
                  <Word>Name</Word>
                  <Dictionary>
                     <Id>gcide</Id>
                     <Name>The Collaborative International Dictionary of English v.0.44</Name>
                  </Dictionary>
                  <WordDefinition>Name \Name\ (n[=a]m), n. [AS. nama; akin to D. naam, OS. &amp; OHG.
     ...
          [1913 Webster]</WordDefinition>
               </Definition>
               <Definition>
                  <Word>Name</Word>
                  <Dictionary>
                     <Id>gcide</Id>
                     <Name>The Collaborative International Dictionary of English v.0.44</Name>
                  </Dictionary>
                  <WordDefinition>Name \Name\ (n[=a]m), v. t. [imp. &amp; p. p. {Named} (n[=a]md); p.
   ...
                </WordDefinition>
               </Definition>
            </Definitions>
         </DefineResult>
      </DefineResponse>
   </soap:Body>
</soap:Envelope>

Hope this helps,

Upvotes: 1

Related Questions