Hi Benajamin,

As I gave in my previous code example dont use the line
fac.createSOAPEnvelope (parser) to build the SOAP envelope.

Use the method 'getSOAPEnvelope' of the StAXSOAPModelBuilder,
Here it is again,

String soap = "....";
ByteArrayInputStream inStr = new ByteArrayInputStream(soap.getBytes());
SOAPFactory fac =  OMAbstractFactory.getSOAP11Factory();
StAXSOAPModelBuilder builder = OMXMLBuilderFactory.createStAXSOAPModelBuilder   
                                           (fac,XMLInputFactory.newInstance().createXMLStreamReader(inStr));
SOAPEnvelope env = builder.getSOAPEnvelope();

client.sendReceive(env );




Chamikara


On 5/11/06, Benjamin Schmeling <[EMAIL PROTECTED]> wrote:
Hi,

String soap = "....";
ByteArrayInputStream inStr = new ByteArrayInputStream(soap.getBytes());
SOAPFactory fac =  OMAbstractFactory.getSOAP11Factory();
StAXSOAPModelBuilder builder =
OMXMLBuilderFactory.createStAXSOAPModelBuilder (fac,XMLInputFactory.newInstance().createXMLStreamReader(inStr));
SOAPEnvelope env = builder.getSOAPEnvelope();
client.sendReceive(fac.createSOAPEnvelope (parser));

the last line throws the following exception:

org.apache.axiom.om.OMException: Root Element can not be detached
    at
org.apache.axiom.soap.impl.llom.SOAPEnvelopeImpl.detach(SOAPEnvelopeImpl.java:155)
    at
org.apache.axiom.om.impl.llom.OMNodeImpl.setParent (OMNodeImpl.java:117)
    at
org.apache.axiom.soap.impl.llom.SOAPElement.setParent(SOAPElement.java:74)
    at
org.apache.axiom.om.impl.llom.OMElementImpl.addChild(OMElementImpl.java:240)
    at
org.apache.axiom.om.impl.llom.OMElementImpl.addChild (OMElementImpl.java:197)
    at
org.apache.axis2.client.ServiceClient.fillSoapEnvelope(ServiceClient.java:554)
    at
org.apache.axis2.client.ServiceClient.sendReceiveNonBlocking(ServiceClient.java:467)
    at
org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:411)
    at
org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:394)

What does this mean?
> Hi Benjamin,
>
> Try following,
>
> String soap = "....";
> ByteArrayInputStream inStr = new ByteArrayInputStream(soap.getBytes());
> SOAPFactory fac =  OMAbstractFactory.getSOAP11Factory();
> StAXSOAPModelBuilder builder =
> OMXMLBuilderFactory.createStAXSOAPModelBuilder(fac,XMLInputFactory.newInstance().createXMLStreamReader(inStr));
> SOAPEnvelope env = builder.getSOAPEnvelope();
>
>
>
> Chamikara
>
>
>
> On 5/10/06, *Benjamin Schmeling* <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED] >> wrote:
>
>     Hi,
>
>     I want to write a Web Service which sends reliable SOAP messages with
>     Sandesha2. My input is a SOAP message as String. The problem is that I
>     do not know how to transform this into an OMElement that can be sent
>     with the ServiceClient class.
>
>     I tried something like this but it did not work:
>
>     String soap = "....";
>     ByteArrayInputStream inStr = new
>     ByteArrayInputStream( soap.getBytes());
>     SOAPFactory fac =   OMAbstractFactory.getSOAP11Factory();
>     OMXMLParserWrapper parser =
>     OMXMLBuilderFactory.createStAXSOAPModelBuilder(fac,
>     XMLInputFactory.newInstance ().createXMLStreamReader(inStr));
>     client.sendReceive(fac.createSOAPEnvelope (parser));
>
>     How can I get this working?
>
>     Thanks,
>
>     Benjamin
>
>
>     ---------------------------------------------------------------------
>     To unsubscribe, e-mail: [EMAIL PROTECTED]
>     <mailto: [EMAIL PROTECTED]>
>     For additional commands, e-mail: [EMAIL PROTECTED]
>     <mailto:[EMAIL PROTECTED]>
>
>



Reply via email to