Hi, I'm facing odd problem when deploying CXF client application with WSS security token on JBoss.
Everything works fine until application is deployed on JBoss. It failed with this error: Unexpected exception occured javax.xml.ws.soap.SOAPFaultException: WRONG_DOCUMENT_ERR: A node is used in a different document than the one that created it. at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156) at $Proxy1020.getAccountStatements(Unknown Source) at com.sru.statement.impl.cs.CSStatementGetter.getStatementFromBank(CSStatementGetter.java:164) at com.sru.statement.impl.cs.CSStatementGetter.getStatement(CSStatementGetter.java:90) at com.sru.hub.common.statement.CommonStatementImportExecutor.execute(CommonStatementImportExecutor.java:89) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:309) (...) at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:260) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662) Caused by: org.w3c.dom.DOMException: WRONG_DOCUMENT_ERR: A node is used in a different document than the one that created it. at org.apache.xerces.dom.ParentNode.internalInsertBefore(Unknown Source) at org.apache.xerces.dom.ParentNode.insertBefore(Unknown Source) at org.apache.xerces.dom.CoreDocumentImpl.insertBefore(Unknown Source) at org.apache.xerces.dom.NodeImpl.appendChild(Unknown Source) at org.jboss.ws.core.soap.SOAPDocument.appendChild(SOAPDocument.java:222) at org.jboss.ws.core.soap.SOAPPartImpl.appendChild(SOAPPartImpl.java:297) at org.apache.cxf.staxutils.W3CDOMStreamWriter.setChild(W3CDOMStreamWriter.java:119) at org.apache.cxf.staxutils.W3CDOMStreamWriter.newChild(W3CDOMStreamWriter.java:109) at org.apache.cxf.staxutils.W3CDOMStreamWriter.writeStartElement(W3CDOMStreamWriter.java:137) at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.writeSoapEnvelopeStart(SoapOutInterceptor.java:122) at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.handleMessage(SoapOutInterceptor.java:81) at org.apache.cxf.binding.soap.interceptor.SoapOutInterceptor.handleMessage(SoapOutInterceptor.java:61) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263) at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:531) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:462) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:365) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:318) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:95) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:134) ... 80 more If client is invoked without WSS authentication it works both standalone and on JBoss. Libraries versions: CXF - 2.4.2 (I tried also 2.5.7 and 2.5.8), JBoss - 5.1.0GA I believe the problem is caused by SAAJ libraries contained in JBoss. I have two SAAJ implementations in JBoss's /lib/endorsed directory: axis-saaj.jar and jboss-native-saaj.jar. If I remove those libraries or/and add SAAJ implementation straight to WAR file of the application, the application hangs (nothing happen; there's not error both in the browser and in logs). I also describe the problem here: http://stackoverflow.com/questions/14629204/wrong-document-err-when-invoking-cxf-client-with-wss-interceptor-from-jboss-5-1 Anyone face those problem before? Best regards. Paweł Zięba
