The Message constructor has the option of specifying 
bodyInStream = true if I want to specify the body of the
SOAP message, but not build the SOAP Envelope myself.

Unfortunately, this doesn't seem to work;  the contents
of the body is always empty.  Here's an example, assuming
a pre-configured Call object and a String msg:

    InputStream input = new ByteArrayInputStream(msg.getBytes("UTF-8"));

    call.setRequestMessage( new Message(input,true) );
    call.invoke();

Is this a known bug, or am I just doing it wrong?  This seems to
be the way it's done in "Building Web Services for Java", after 
correcting for API changes.

I know I can pass SOAPBodyElements to Call.invoke( Object[] ),
but that doesn't work for me, because I need to examine the
SOAPHeader in the reply.  I could build the SOAPEnvelope myself,
but Axis should really be doing that for me...

Thanks for any ideas,

Fred Barrett

Reply via email to