[ https://issues.apache.org/jira/browse/WSCOMMONS-459?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12697429#action_12697429 ]
Luca Cavanna commented on WSCOMMONS-459: ---------------------------------------- Great, you're right! Thank you very much. I've tested it using the current version of axiom downloaded from subversion trunk. > 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 > 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.