Can you (or anyone else) modify the Xfire classes, or show me where they live so that I can update them?
> -----Original Message----- > From: Guillaume Nodet [mailto:[EMAIL PROTECTED] > Sent: Wednesday, January 04, 2006 2:04 AM > To: [email protected] > Subject: Re: [servicemix-user] Problems with JSM flow and > SOAP messages > > > Yes, you are right. > The HttpSoapClientMarshaler is only used on the consumer side in > HttpSoapInvoker. > The HttpSoapConnector uses xfire for all soap related stuff. > > Guillaume Nodet > > [EMAIL PROTECTED] wrote: > > >Guillaume, > > > >It appears as though the HttpSoapClientMarshaler.toNMS() is > not ever called > >when using the HttpSoapConnector, is that correct? What component is > >responsible for extracting the Soap message from the HTTP > request? Is this > >performed by Xfire? Apparently, I made changes that work > (i.e. the current > >HttpSoapTest jUnit tests pass), but the modified service is > never actually > >called by the HttpSoapConnector. Can you please clarify the > relationship > >between the classes here? > > > >regards, > >/jonathan > > > > > > > >>-----Original Message----- > >>From: Guillaume Nodet [mailto:[EMAIL PROTECTED] > >>Sent: Tuesday, January 03, 2006 4:12 PM > >>To: [email protected] > >>Subject: Re: [servicemix-user] Problems with JSM flow and > >>SOAP messages > >> > >> > >>Yes please, and attach your patches. > >>Thanks a lot ! > >> > >>Guillaume Nodet > >> > >>[EMAIL PROTECTED] wrote: > >> > >> > >> > >>>Should I open a jira for this? One for the new feature in > >>>HttpSoapClientMarshaller, and another for the potential defect in > >>>SaajMarshaller? > >>> > >>>/jonathan > >>> > >>> > >>> > >>> > >>> > >>>>-----Original Message----- > >>>>From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > >>>>Sent: Tuesday, January 03, 2006 4:06 PM > >>>>To: [email protected] > >>>>Subject: RE: [servicemix-user] Problems with JSM flow and > >>>>SOAP messages > >>>> > >>>> > >>>>The earlier submission had a possible NullPointerException > >>>> > >>>> > >>waiting to > >> > >> > >>>>happen; I've cleaned it up. The same is true of the current > >>>>SaajMarshaller.toNMS() method - a check should be performed > >>>>on the result of > >>>>parent.getAttributes() before any further action is taken, or a > >>>>NullPointerException may be raised. > >>>> > >>>>/jonathan > >>>> > >>>>Code Follows > >>>> > >>>> public void toNMS(NormalizedMessage normalizedMessage, > >>>> > >>>> > >>HttpMethod > >> > >> > >>>>method) throws Exception { > >>>> addNmsProperties(normalizedMessage, method); > >>>> String response = method.getResponseBodyAsString(); > >>>> Node node = sourceTransformer.toDOMNode(new > >>>>StringSource(response)); > >>>> CachedXPathAPI cachedXPathAPI = new CachedXPathAPI(); > >>>> NodeIterator iterator = > >>>>cachedXPathAPI.selectNodeIterator(node, > >>>> "/*/*[local-name()='Body']/*"); > >>>> Node root = iterator.nextNode(); > >>>> > >>>> /* > >>>> * Copy embedded namespaces from the envelope into > the body, > >>>>similarly > >>>> * to the SaajMarshaller.toNMS() method. > >>>> */ > >>>> for (Node parent = root.getParentNode(); parent != > >>>>null; parent = > >>>>parent.getParentNode()) { > >>>> NamedNodeMap attributes = parent.getAttributes(); > >>>> if (attributes != null) { > >>>> for (int i = 0; i < attributes.getLength(); i++) { > >>>> Attr att = (Attr) attributes.item(i); > >>>> if (att.getName().startsWith("xmlns:") > >>>> && > >>>>root.getAttributes().getNamedItemNS(att.getNamespaceURI(), > >>>> att.getLocalName()) == null) { > >>>> if (root.getNodeType() == > >>>> > >>>> > >>Node.ELEMENT_NODE) { > >> > >> > >>>> ((Element) > >>>>root).setAttributeNS(att.getNamespaceURI(), > >>>> att.getName(), > >>>> att.getValue()); > >>>> } > >>>> } > >>>> } > >>>> } > >>>> } > >>>> > >>>> normalizedMessage.setContent(new DOMSource(root)); > >>>> } > >>>> > >>>> > >>>> > >>>> > >>>> > >>> > >>> > >>> > >>> > > > > > > > > >
