-----Original Message-----
From: news [mailto:[EMAIL PROTECTED]
Behalf Of Simon Carni
Sent: Thursday, January 12, 2006 10:39 PM
To: [email protected]
Subject: [servicemix-user] Re: Re: Exception in SaajMarshaler...
Hi Jonathan,
The build is 3.0-SNAPSHOT and the xfire-all-1.0-20060106.jar.
I'm running it
on java 1.5.0-b64.
Thanx,
Simon
<[EMAIL PROTECTED]> wrote in message
news:[EMAIL PROTECTED]
northamerica.cexp.com...
Which version of the xfire-all jar are you running with?
Also, which build
of the various components are you running off of?
-----Original Message-----
From: news [mailto:[EMAIL PROTECTED]
Behalf
Of Simon Carni
Sent: Thursday, January 12, 2006 4:01 PM
To: [email protected]
Subject: [servicemix-user] Re: Exception in SaajMarshaler...
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:service
MethodResponse></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:Bo
dy><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"><service
MethodReturn
xsi:type="xsd:string">simon</serviceMethodReturn></ns1:service
MethodResponse></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???