我在使用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
但这没有帮助。
答案 0 :(得分:1)
事实证明,使用Axis2的这个类是有问题的。我删除了对Axis2的所有依赖项和引用,现在应用程序使用了Sun的saaj版本,它没有问题。