Okay I guess then that my question really is I send an envelope to a 
messaging service, the body of which I want to extract and pass on.  How 
do I extract the XML document which as best I can tell is in the body of 
the Envelope.  Do I have to marshall it back into an XML document.  Is 
there an easier way send an XML document so that I don't have to deal 
with marshalling and unmarshalling since I am doing that outside of SOAP.

Tom Myers wrote:

> At 11:22 AM 8/7/2001 -0500, Rich Catlett wrote:
> 
>> I am trying to send an precreated XML document via the soap messaging service.  The 
>client takes as an input parameter the host soap is running on, the service, and the 
>XML document to send.  I have created the envelope using Envelope.unmarshall() as the 
>messaging example shows ...
> 
> 
> and his server code is
> 
>> Body body = env.getBody()  // env is the Envelope sent to the service
>> resctx.setRootPart(body.toString(), "text/xml");
> 
> 
> and this generates the output
> 
>> [Attributes={}] [BodyEntries=
>> [(0)=[purchaseOrder: null]]
>> ]
>> ...
>> Can someone tell me what I'm doing wrong or point me in the direction to figure it 
>out.
> 
> 
> and the thing is, if you look at the source, the org.apache.soap.Body.toString() 
>method
> is generating that (0)=[purchaseOrder: null] with code like so:
> 
>>   for (int i = 0; i < bodyEntries.size(); i++)
>>       {
>>         pw.println("[(" + i + ")=" + bodyEntries.elementAt(i) + "]");
>>       }
> 
> 
> Now, bodyEntries is a vector which generally contains DOM elements, but
> Element.toString() is not a method for reporting detailed contents, it's not a DOM
> method at all -- it's a debugging aid. I'd still suggest something like
> 
>>  Element purchaseOrder = (Element)(env.getBody().getBodyEntries().elementAt(0));
>>   new org.apache.xml.serialize
>>    .XMLSerializer(System.out,
>>                   new org.apache.xml.serialize.OutputFormat("xml","utf-8",true))
>>       .asDOMSerializer().serialize(purchaseOrder);
> 
> 
> to see if the Element is actually there--I just don't know, from what you've said.
> toString() may tell somebody, but it doesn't tell me much. (Maybe this will blow 
> up with a classcastexception because the elementAt(0) is not really even an Element.
> If not, it might help to figure out what it is. :-) )
> 
> Tom Myers
> 
> 

Reply via email to