Hello,

i am trying to load a soap message which was created using a different namespace prefix for the soapenvelope than Axis2 does. The default prefix in Axis2 is 'soapenv' - my soapmessge uses the prefix 'SOAP-ENV'.
When loading the message by with:
  MessageFactory factory = MessageFactory.newInstance();
  SOAPMessage msg = factory.createMessage(headers, in);

it will internally create a new instance of the class org.apache.axis2.soap.impl.dom.SOAPEnvelopeImpl by using the constructor:
 public SOAPEnvelopeImpl(DocumentImpl doc, OMXMLParserWrapper builder,
                         SOAPFactory factory)

In this constructor it calls the parent constructor with the new namespace definition using the default prefix. When the to be loaded soap message uses a different prefix, this will result into two xmlns definitions with the soap envelope namespace url when writing the message out again.

A possible solution could be just don't create a the new namespace in the class SOAPEnvelopeImpl.

Hopefully this can be fixed before Axis2 1.0

Regards,
Jörg Eichhorn

Reply via email to