[
https://issues.apache.org/jira/browse/CXF-4652?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13503761#comment-13503761
]
Daniel Kulp commented on CXF-4652:
----------------------------------
While I don't object to the patch, I do want to point out that the bug is
really in your code, not CXF. You are not setting the DocumentBuilder to be
namespace aware. Thus, the resulting DOM doesn't have the namespaces properly
parsed and processed. Most likely, if you add
documentFactory.setNamespaceAware(true) it would work for you as the DOM would
be properly constructed.
> Additional namespace is added when web service provider implements
> Provider<DOMSource>
> --------------------------------------------------------------------------------------
>
> Key: CXF-4652
> URL: https://issues.apache.org/jira/browse/CXF-4652
> Project: CXF
> Issue Type: Bug
> Affects Versions: 2.6.2
> Environment: win7 + oracle jdk 1.6.0_29-b11
> Reporter: Han Hong Fang
> Assignee: Freeman Fang
> Fix For: 2.4.11, 2.5.7, 2.6.4, 2.7.1
>
> Attachments: W3CDOMStreamReader.java.patch
>
>
> In the invoke method of web service provider which implements
> Provider<DOMSource>, using the following code to return a response DOMSource,
> DOMSource response = new DOMSource();
> DocumentBuilderFactory documentFacory =
> DocumentBuilderFactory.newInstance();
> DocumentBuilder documentBuilder = null;
> try {
> documentBuilder = documentFacory.newDocumentBuilder();
> } catch (ParserConfigurationException e) {
> throw new RuntimeException(e);
> }
> Document doc;
> try {
> doc = documentBuilder.parse(new InputSource(
> new ByteArrayInputStream(message.getBytes("UTF-8"))));
> } catch (Exception e) {
> throw new RuntimeException("error parse: " + str, e);
> }
> response.setNode(doc);
> In above code, if message string is:
> "<ns2:echoResponse
> xmlns:ns2="annotations.webserviceprovider.fq"><return>Hello
> world</return></ns2:echoResponse>",
> but the soapMessage body will be:
> "<ns2:echoResponse xmlns:ns2="annotations.webserviceprovider.fq"
> xmlns="annotations.webserviceprovider.fq"><return>Hello
> world</return></ns2:echoResponse>"
> Additional attribute xmlns="annotations.webserviceprovider.fq" is added by
> cxf. This additional attribute causes the unmarshal issue at client side.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira