如何使用SAAJ将没有前缀的名称空间添加到SOAP请求方法标记中?

如何使用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");