Soap Handler org.w3c.dom.DOMException:HIERARCHY_REQUEST_ERR:

时间:2012-11-07 17:16:18

标签: java web-services spring soap axiom

我在使用Spring配置(不是Spring-WS)作为Web服务公开的无状态bean中使用JAX-WS。我添加了一个SOAP Handler并在处理程序中,当我在SOAPMessageContext上尝试getMessage()时,我得到了一个尝试插入一个  不允许的节点。

        at org.apache.axiom.om.impl.dom.ParentNode.insertBefore(ParentNode.java:
224)
        at org.apache.axiom.om.impl.dom.NodeImpl.appendChild(NodeImpl.java:240)
        at org.apache.axis2.saaj.SOAPPartImpl.appendChild(SOAPPartImpl.java:989)

        at com.sun.xml.bind.marshaller.SAX2DOMEx.startElement(SAX2DOMEx.java:198
)
        at com.sun.xml.ws.message.SAX2DOMWriterEx.writeStartElement(SAX2DOMWrite
rEx.java:97)
        at com.sun.xml.ws.message.AbstractMessageImpl.writeTo(AbstractMessageImp
l.java:144)
        at com.sun.xml.ws.message.AbstractMessageImpl.readAsSOAPMessage(Abstract
MessageImpl.java:226)
        at com.sun.xml.ws.handler.SOAPMessageContextImpl.getMessage(SOAPMessageC
ontextImpl.java:87)

我将这些依赖项添加到我的Maven配置中: JAX-WS: Getting DOMException - HIERARCHY_REQUEST_ERR upon trying to add security headers

我读过WebLogic saaj库已经过时了。我尝试将其添加到我的启动环境脚本中:

-Djavax.xml.soap.MessageFactory=com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl

并尝试过:

-Djavax.xml.soap.MessageFactory=org.springframework.ws.soap.axiom.AxiomSoapMessageFactory

但这没有帮助。

1 个答案:

答案 0 :(得分:1)

事实证明,使用Axis2的这个类是有问题的。我删除了对Axis2的所有依赖项和引用,现在应用程序使用了Sun的saaj版本,它没有问题。