[
https://issues.apache.org/jira/browse/WSCOMMONS-459?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andreas Veithen updated WSCOMMONS-459:
--------------------------------------
Fix Version/s: Axiom 1.2.11
> Soap envelope rpc-encoded namespace issue
> ------------------------------------------
>
> Key: WSCOMMONS-459
> URL: https://issues.apache.org/jira/browse/WSCOMMONS-459
> Project: WS-Commons
> Issue Type: Bug
> Components: AXIOM
> Affects Versions: Axiom 1.2.8
> Environment: java 1.6
> Reporter: Luca Cavanna
> Fix For: Axiom 1.2.11
>
> Attachments: AxiomSoapRpcEncoded.java,
> AxiomSoapRpcEncodedOMSource.java, soaprequest.xml
>
>
> I have replaced saaj with axiom in my projects to manage soap handling.
> I have an rpc-encoded soap envelope containing the declarations of soapenv
> (xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/") and xsi
> (xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance") namespaces.
> The first element of the soap body references soapenv in one of his
> attributes
> (soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"). Some xml
> elements in the soap body reference the xsi namespace
> (xsi:type="soapenc:string") as well.
> When I try to parse the soap body (extracted from the soap envelope) using
> JDOM or DOM4J I get a SaxParseException because the soapenv and xsi
> namespaces are not bound:
> org.xml.sax.SAXParseException: The prefix "soapenv" for attribute
> "soapenv:encodingStyle" associated with an element type "ns1:sendMessage" is
> not bound.
> Saaj handles correctly the soapenv and and xsi declarations moving them in
> the soap body; with axiom the soap body contain only the reference to those
> namespaces and not the declarations.
> The issue seems to be creating a StAXSource from Axiom payload element
> (obtained by calling
> axiomSoapMessage.getSOAPEnvelope().getBody().getFirstElement()); serializing
> payload calling serialize method namespace are correctly handled, but
> creating a StAXSource using XMLStreamReader and transforming it to a
> StreamResult I get an xml not parseable because namespaces are not bound.
> I have found a workaround transforming the StAXSource in a JDOMResult.
> The problem rises when you create a StAXSource from an Axiom payload element
> (calling axiomSoapMessage.getSOAPEnvelope().getBody().getFirstElement()).
> When you call the serialize method, namespaces are correctly handled; but if
> you create a StAXSource using an XMLStreamReader and try to transform it to a
> StreamResult you get the SaxParseException mentioned above.
> I have found a workaround transforming the StAXSource in a JDOMResult.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.