You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Han Hong Fang (JIRA)" <ji...@apache.org> on 2012/11/26 06:58:58 UTC
[jira] [Updated] (CXF-4652) Additional namespace is added when web
servcie provider implements Provider
[ https://issues.apache.org/jira/browse/CXF-4652?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Han Hong Fang updated CXF-4652:
-------------------------------
Description:
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.
was:
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.
> Additional namespace is added when web servcie 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
> Fix For: 2.6.4
>
>
> 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