Hello,

I am having a hard time grasping when to use RPC calls and when to build
your own messages.  I used to use Apache SOAP, and I used to build my own
SOAP message via JAXM.

However, I am now trying to upgrade to AXIS, and to make full use of its
feature set... which seems to have a huge emphasis on using RPC, and
seems to abstract out message building.

Every guide and tutorial that I have read seems to revolve around RPC, and
how easy it is to implement in AXIS.  I can see the benefits of RPC for
simple calls (pass in a few arguments, get back a single result... even
if the result is a complex type).  RPC seems great for that.

However, I need to pass much more complex messages, and receive much more
complex results.  Does that mean that RPC is not the best solution for me?

For example, here is a typical message that I will send to a SOAP server:

<soap-env:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/";>
<soap-env:Header>
<t:Transaction xmlns:t="xxs">
  <iden u="user" p="password"/>
</t:Transaction>
</soap-env:Header>
<soap-env:Body>
<ns1:ProviderTransaction xmlns:ns1="xxs">
<REQ>
  <action entryDate="20040919">1</action>
  <memberInfo nvid="1234567">
    <externalID>4001775</externalID>
    <name><first>Maggie</first><last>Duke</last></name>
    <companyName/>
    <address>123 Test St.</address>
    <address2/>
    <city>City</city>
    <state>CT</state>
    <country>US</country>
    <postalCode>06524</postalCode>
    <email>[EMAIL PROTECTED]</email>
    <ssn></ssn>
  </memberInfo>
  <orderInfo>
    <effectiveDate>20040928</effectiveDate>
    <items count="2">
      <item><itc>2973</itc><qty>1</qty><pc>Y</pc></item>
      <item><itc>1234</itc><qty>1</qty><pc>Y</pc></item>
    </items>
  </orderInfo>
</REQ>
</ns1:ProviderTransaction>
</soap-env:Body><
/soap-env:Envelope>


and here is a typical response:


<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:xsd="http://www.w3.org/1999/XMLSchema/";
xmlns:xsi="http://www.w3.org/1999/XMLSchema/instance/";>
<SOAP-ENV:Header>
<t:Transaction xmlns:t="xxs" />
</SOAP-ENV:Header>
<SOAP-ENV:Body>
<ns1:ProviderTransaction xmlns:ns1="xxs">
<RSP>
<responseNode>
  <nvid new="1">863262802</nvid>
  <orderNumber>9136214</orderNumber>
  <asOrderNumber>961704</asOrderNumber>
</responseNode>
</RSP>
</ns1:ProviderTransaction>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


Are complex SOAP packets like these not appropriate for RPC?  It seems to
me, like you really need to build your own requests, and parse your own
responses to make something like this work.  Am I correct in that?

Thank you,
-Raiden Johnson

Reply via email to