如何使用SAAJ将没有前缀的名称空间添加到SOAP请求方法标记中?
问题描述:
我想用SAAJ组装一个SOAP请求。如何使用SAAJ将没有前缀的名称空间添加到SOAP请求方法标记中?
原来的SOAP请求是这样的
(...)
<soapenv:Body>
<methodName xmlns="http://xyz.abc/asdfgh">
(...)
</methodName>
</soapenv:Body>
使用SAAJ,我的代码看起来像
SOAPBody soapBody = envelope.getBody();
SOAPElement req= soapBody.addChildElement("methodName");
req.addNamespaceDeclaration("", "http://xyz.abc/asdfgh");
的问题,当然,是命名空间的前缀不能为空或空值。
那么如何在这种情况下生成没有前缀的SOAP请求名称空间?
答
要与默认命名空间添加methodName
元素,改变
SOAPElement req= soapBody.addChildElement("methodName");
到
SOAPElement req= soapBody.addChildElement("methodName","","http://xyz.abc/asdfgh");