- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个 Web 服务客户端,我必须生成这样的代码:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:env="Envio_ConsultaSecuencia">
<soapenv:Header/>
<soapenv:Body>
<env:envio>
<env:cabecera>
<env:idMensaje>ABCDEFG<env:idMensaje>
<env:tipoMensaje>ABCDEFG</env:tipoMensaje>
</env:cabecera>
</env:envio>
</soapenv:Body>
</soapenv:Envelope>
所以,我的问题是当我尝试在 cabecera 中插入前缀“env”时。这是我正在使用的代码:
MessageFactory factory = MessageFactory.newInstance();
SOAPMessage message = factory.createMessage();
SOAPPart soapPart = message.getSOAPPart();
SOAPEnvelope envelope = soapPart.getEnvelope();
SOAPHeader header = envelope.getHeader();
SOAPBody body = envelope.getBody();
SOAPElement envio = body.addChildElement("envio");
envio.setPrefix("env");
SOAPElement cabecera = envio.addChildElement("cabecera");
cabecera.setPrefix("env");
(...)
我不明白为什么我可以在名为“envío”的 SOAPElement 中设置前缀“env”,而当我尝试对“cabecera”做同样的事情时,我得到了这个错误:
org.w3c.dom.DOMException: NAMESPACE_ERR: An attempt is made to create or change an object in a way which is incorrect with regard to namespaces.
我会感谢你的帮助。提前致谢。
编辑:
我在 Oracle 的网站上找到了解决方案 https://docs.oracle.com/cd/E19340-01/820-6767/aeqfx/index.html
创建每个 Child 的正确方法是:
Name bodyName = envelope.createName("GetLastTradePrice", "m",
"http://eztrade.com")
SOAPBodyElement gltp = body.addBodyElement(bodyName);
并且前缀插入没有问题。
就是这样!
最佳答案
尝试将命名空间声明添加到 SOAPElement envio 或添加到 SOAPEnvelope。
SOAPMessage message = factory.createMessage();
SOAPPart soapPart = message.getSOAPPart();
SOAPEnvelope envelope = soapPart.getEnvelope();
//add declaration here
envelope.addNamespaceDeclaration("env", "http://som.org");
SOAPHeader header = envelope.getHeader();
SOAPBody body = envelope.getBody();
SOAPElement envio = body.addChildElement("envio");
envio.setPrefix("env");
//explicit declare it here for this element
envio.addNamespaceDeclaration("env", "http://som.org");
SOAPElement cabecera = envio.addChildElement("cabecera","env");
关于java - 创建 SOAP 消息 : NAMESPACE_ERR An attempt is made to create or change an object in a way which is incorrect with regard to namespaces,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37662187/
我尝试解析两个 XML 文档:和 .第一种情况工作正常,但后一种情况会引发异常(使用的 xalan/xerces 是 OpenJDK 1.6/1.7 附带的)。一些谷歌搜索表明发生这种情况是因为使用
在我的 SOAP 应用程序中,我收到此错误 NAMESPACE_ERR: An attempt is made to create or change an object in a way which
我正在使用 Xercesc-3-1,并且正在尝试解析 XPath。代码如下: auto result = documents[ref.refDoc]->evaluate(XMLString::tran
我正在开发一个 Web 服务客户端,我必须生成这样的代码: ABCDEFG
我是一名优秀的程序员,十分优秀!