Hi Guillaume, I think I know where the problem is :
document.appendChild(node.cloneNode(true)); in method createSOAPMessage in SaajMarshaller throws A node is used in a different document than the one that created it exception. The workaround is to replace this with document.appendChild(document.importNode(node,true)); I had simillar issue on some other project... Now there's another issue: when the message is routed back to Axis client seems like xmlns attribute gets gets lost. Here's the document returned to AxisClient when the WS is called directly: <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><ns1:serviceMethodResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://example3.userguide.samples"><serviceMethodReturn xsi:type="xsd:string">simon</serviceMethodReturn></ns1:serviceMethodResponse></soapenv:Body></soapenv:Envelope> and here's the document returned when using SM as a "broker": <?xml version='1.0' encoding='UTF-8'?><soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soap:Body><ns1:serviceMethodResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><serviceMethodReturn xsi:type="xsd:string">simon</serviceMethodReturn></ns1:serviceMethodResponse></soap:Body></soap:Envelope> You can see xmlns:ns1="http://example3.userguide.samples" missing in second doc. As result I get org.xml.sax.SAXParseException: The prefix "ns1" for element "ns1:serviceMethodResponse" is not bound at Axis client. The attribute exists before org.codehaus.xfire.soap.handler.SoapSerializerHandler is invoked, so that could be the spot. Maybe I just missed something... Anyway thanx in advance Cheers, Simon "Guillaume Nodet" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED] > Could you raise a jira, specifying this stacktrace and the exact classpath > used. > The most important is the saaj implementation and dom implementation. > > Cheers, > Guillaume Nodet > > Simon Èarni wrote: > >>Hi, >> >>While trying to execute following scenario on SM 3.0-SNAPSHOT; >> >>Axis SOAP Client --> HttpSoapConnector --> SaajBinding --> SOAP WS, >> >>I get exception: >> >>DEBUG - DefaultEndpoint.handleException(76) | Fault occurred! >>org.codehaus.xfire.fault.XFireFault: WRONG_DOCUMENT_ERR: A node is used in >>a dif >>ferent document than the one that created it. >> at >> org.apache.servicemix.components.http.HttpSoapInOutBinding.invokeInOu >>t(HttpSoapInOutBinding.java:143) >> at >> org.apache.servicemix.components.http.HttpSoapInOutBinding$InOutServi >>ce.invokeInOut(HttpSoapInOutBinding.java:221) >> at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. >>java:39) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces >>sorImpl.java:25) >> at java.lang.reflect.Method.invoke(Method.java:585) >> at >> org.codehaus.xfire.service.binding.ObjectInvoker.invoke(ObjectInvoker >>.java:87) >> at >> org.codehaus.xfire.service.binding.ServiceInvocationHandler.sendMessa >>ge(ServiceInvocationHandler.java:110) >> at >> org.codehaus.xfire.service.binding.ServiceInvocationHandler.invoke(Se >>rviceInvocationHandler.java:72) >> at org.codehaus.xfire.handler.HandlerPipeline.invoke >> (HandlerPipeline.jav >>a:97) >> at >> org.codehaus.xfire.transport.DefaultEndpoint.onReceive(DefaultEndpoin >>t.java:58) >> at >> org.codehaus.xfire.transport.AbstractChannel.receive(AbstractChannel. >>java:38) >> at >> org.codehaus.xfire.transport.http.XFireServletController.invoke(XFire >>ServletController.java:278) >> at >> org.codehaus.xfire.transport.http.XFireServletController.doService(XF >>ireServletController.java :144) >> at org.apache.servicemix.component >> s.http.HttpSoapInOutBinding.process(Ht >>tpSoapInOutBinding.java:94) >> at >> org.apache.servicemix.components.http.BindingServlet.doPost(BindingSe >>rvlet.java:75) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:615) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:688) >> at >> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java :428 >>) >> at >> org.mortbay.jetty.servlet.ServletHandler.dispatch(ServletHandler.java >>:666) >> at >> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:5 >>68) >> at org.mortbay.http.HttpContext.handle (HttpContext.java:1530) >> at org.mortbay.http.HttpContext.handle(HttpContext.java:1482) >> at org.mortbay.http.HttpServer.service(HttpServer.java:909) >> at org.mortbay.http.HttpConnection.service >> (HttpConnection.java:816) >> at >> org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:982) >> at org.mortbay.http.HttpConnection.handle(HttpConnection.java:833) >> at org.mortbay.http.SocketListener.handleConnection >> (SocketListener.java: >>244) >> at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357) >> at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534) >>Caused by: org.w3c.dom.DOMException : WRONG_DOCUMENT_ERR: A node is used >>in a dif >>ferent 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.apache.servicemix.components.saaj.SaajMarshaler.createSOAPMessage >>(SaajMarshaler.java:140) >> at org.apache.servicemix.components.saaj.SaajBinding.onMessageExc >> hange(S >>aajBinding.java:88) >> at >> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBoun >>d(DeliveryChannelImpl.java:587) >> at >> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlo >>w.java:179) >> at >> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doSend(SedaFlow.java >>:137) >> at >> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.send(AbstractFlow.jav >>a:121) >> at org.apache.servicemix.jbi.nmr.Broker.sendExchangePacket >> (Broker.java:2 >>85) >> at >> org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBICont >>ainer.java:586) >> at >> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(Delive >>ryChannelImpl.java :346) >> at >> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(Deli >>veryChannelImpl.java:420) >> at >> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(Deli >>veryChannelImpl.java :397) >> at >> org.apache.servicemix.components.http.HttpSoapInOutBinding.invokeInOu >>t(HttpSoapInOutBinding.java:132) >> ... 29 more >>DEBUG - HandlerPipeline.invoke(95) | Invoking handler >>org.codehaus.xfire.soap.ha >>ndler.FaultSoapSerializerHandler in phase post-invoke >>DEBUG - HandlerPipeline.invoke(95) | Invoking handler >>org.codehaus.xfire.handler >> >>... >> >>Any ideas??? >> >> >> >> >> >> > >
