Thanks a lot! Scott. I posted the question "Multiple Methods call in SOAP Body" in this mailing list
before and you answered me. Since our customer's spec has two methods(elements) in SOAP RPC
Body, so I played a trick using messaging API, the first method is nothing but a dummy, inside it,
I let program call the second method. In this way, you can have two elements in Body. It works though
it is not a standard way to do SOAP things. Unfortunately, I don't have WSDL for this service. I am
still waiting for the customer side technical stuff to answer the multiple methods(elements) call question.


-Daniel
Scott Nichol wrote:

You cannot achieve the desired envelope using an Apache SOAP RPC Call, because it is not a SOAP RPC call. In particular, the SOAP 1.1 spec implies and the 1.2 spec clarifies, an RPC SOAP Body has a single body element. The body you show has 2. As such, with Apache SOAP, you are stuck using the messaging API.

Additionally, Apache SOAP has the limitation that one cannot specify a namespace for a parameter. Someone started adding this capability quite some time ago, but it was never finished.

I am curious: do you have WSDL for this service? If so, can you post it?

On 7 Jul 2003 at 9:22, Daniel Zhang wrote:



Thank you Scott for your patient reply. What I mean is every tag inside Envelope is CUSTOMIZED.
In SOAP RPC call, you usually have default tag inside SOAP Body like:


<ns1: methodName xmlns:ns1="urn:..." SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";>

I understand that one can change part of the tags/prefix through Constants.java, but in my particular case, there are
several depths of nested elements inside the Header and Body, each element has exactly fixed format and tag for it.
I find it is really hard to realize this through changing Constants.java. That's why I use message.send() to control
those customized prefix and tags.


What I wonder is if there are methods in Apache SOAP to let me pass the customized tags and prefix into its Header
and Body. For example, say you have buildHeader(stringHeader), buildBody(stringBody), so that you can pass a
pre-defined Header and Body tags/prefix into the Envelope.


Thanks again,

-Daniel








Reply via email to