2012-11-07 52 views
1

我在使用Spring配置(不是Spring-WS)作爲Web服務公開的無狀態bean中使用JAX-WS。我已經添加了一個SOAP處理程序,並且在處理程序中,當我嘗試在SOAPMessageContext上使用getMessage()時,我得到a嘗試在不允許的地方插入一個 節點。肥皂處理程序org.w3c.dom.DOMException:HIERARCHY_REQUEST_ERR:

 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

事實證明,使用Axis2的這個類是有問題的。我刪除了所有對Axis2的依賴關係和引用,現在應用程序使用Sun的saaj版本,該版本毫無問題。