Apache SOAP does not directly support multiple method calls in a 
single SOAP request/response, although presumably the messaging API 
could be used to accommodate this.

The SOAP 1.1 spec does not specifically mention multiple method calls 
in a single SOAP request/response.  Section 7 describes RPC.  It 
specifies the request and response each be modelled as a struct.  
Since the SOAP Body can have multiple children, in theory, each child 
could be a method call or method response.  The only restriction I 
see is that the SOAP Fault can occur only once within a SOAP Body.  
Therefore, if multiple calls were sent in one request and there were 
multiple errors, the errors would have to be consolidated in a single 
SOAP Fault.

I don't know of any SOAP implementations that support multiple method 
calls in a single SOAP request, so interoperability would be 
questionable.

The SOAP 1.2 spec was released as a recommendation today.  The RPC 
section there (http://www.w3.org/TR/2003/REC-soap12-part2-
20030624/#rpcinvocation) would seem to restrict the SOAP Body to a 
single request or response struct.  Even so, this would not limit 
other SOAP representations from having two or more method calls.

On 24 Jun 2003 at 8:11, Daniel Zhang wrote:

> We have customers demand customed SOAP request. So we have to manually 
> construct SOAP Envelope.
> However, our customer's proposal has TWO methods calls inside one SOAP 
> envelope. Before I say NO
> to them, I want to make sure here, is that possible that you can call 
> TWO methods in one SOAP Body?
> 
> The SOAP Envelope looks like the following code. Please pay attention to 
> "<soap:Body> ...</soap:Body>"
> block, Apache-SOAP treats Manifest and cBody as TWO methods, and also 
> their isd service ids are not the
> same in Deployment Descriptor file(Here are 
> "http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd";
> and "cb="http://mycompany.com/cbody.xsd";).  So I built two methods 
> Manifest and cBody, however, everytime
> SOAP only call Manifest which is the first one. I have to delete 
> "<eb:Manifest>...</eb:Manifest>" block then
> method cBody was called. BTW, I use type of "mesage" calling for SOAP.
> 
> I studied so many examples and all are the ONE method call in ONE SOAP 
> Envelope. So I wonder if it is possible
> that make multiple method calls within ONE SOAP Envelope.
> 
> Thanks in advance,
> 
> -Daniel
> 
> <*soap:Envelope* xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
>                          
> xmlns:eb="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd";
>                          xmlns:ch="http://mycompany.com/cheader.xsd";
>                          xmlns:cb="http://mycompany.com/cbody.xsd";
>                          xmlns:xlink="http://www.w3.org/1999/xlink";
>                          
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>                          xmlns:xs="http://www.w3/org/2001/XMLSchema";
>                          
> xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/
>                                                           
> http://www.oasis-open.org/committees/ebxml-msg/schema/envelope.xsd
>                                                           
> http://mycompany.com/cheader.xsd
>                                                           
> http://mycompany.com/cbody.xsd";>
> <*soap:Header*>
>     <eb:MessageHeader eb:version="2.0" soap:mustUnderstand = "1">
>        <eb:From>L.A</eb:From>
>        <eb:To>N.Y</eb:To>
>         ......
>      </eb:MessageHeader>
>      <ch:cHeader>
>           ......
>      </ch:cHeader>
> <*/soap:Header*>
> <*soap:Body*>
>     <*eb:Manifest* eb:id="ID000001" eb:version="2.0">
>          <eb:Reference xlink:href="cid:project"; xlink:type="simple" 
> xlink:role="http://mycompany.com/roles/Poject_Description/"; />
>           ......
>      <*/eb:Manifest*>
>      <*cb: cBody*>
>          <cb: Name>John</cb:Name>
>          <cb:Address>
>              .......
>          </cb:Address>
>           ........
>       <*/cb:cBody*>
> <*/soap:Body*>
> <*/soap:Envelope*>
> 
> 
>     
> 


Scott Nichol

Do not reply directly to this e-mail address,
as it is filtered to only receive e-mail from
specific mailing lists.


Reply via email to