在Java中将名称空间动态添加到SOAP信封

时间:2019-05-11 13:49:01

标签: java soap

我不熟悉所有这些,但是我试图创建SOAP消息并陷入困境,我正在使用Java 8和标准的javax.xml.soap类,但似乎无法将名称空间添加到Envelope < / p>

MessageFactory factory  = MessageFactory.newInstance();
SOAPMessage message     = factory.createMessage();
SOAPPart part       = message.getSOAPPart();
SOAPEnvelope envelope   = part.getEnvelope();

envelope.addNamespaceDeclaration( "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");

如果我在运行时尝试此操作,则会收到以下错误 NAMESPACE_ERR:试图以一种不正确的名称空间方式创建或更改对象。

1 个答案:

答案 0 :(得分:0)

我现在通过将所需的信封定义创建为XML字符串,然后使用该字符串设置SOAPPart内容来完成此操作