Spring構成(Spring-WSではない)を使用してWebサービスとして公開されているステートレスBeanでJAX-WSを使用しています。SOAPハンドラーを追加しました。ハンドラーで、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:セキュリティヘッダーを追加しようとするとDOMException-HIERARCHY_REQUEST_ERRを取得します
WebLogicsaajライブラリが古くなっていることを読みました。これをスタートアップ環境のスクリプトに追加してみました。
-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
しかし、それは役に立ちませんでした。