Mule
  1. Mule
  2. MULE-4292

CXF webservice proxy changing namespace attributes

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Won't Fix or Usage Issue
    • Affects Version/s: 2.2
    • Fix Version/s: None
    • Component/s: Modules: CXF
    • Labels:
    • Environment:

      Appservers: Jetty, Websphere 6.1
      OS: Windows XP

    • User impact:
      High
    • Configuration:
      Hide

      <!-- NOTE: host, domain names have been changed from their actual values -->

      <service name="Eligibility">
      <inbound>

      <cxf:inbound-endpoint
      address="http://localhost:65080/services/Eligibility"
      proxy="true"
      wsdlLocation="Eligibility.wsdl"
      serviceName="Eligibility"
      synchronous="true">
      <property key="namespace" value="http://mydomain.com" />
      </cxf:inbound-endpoint>

      </inbound>

      <outbound>

      <pass-through-router>

      <cxf:outbound-endpoint
      address="http://remotehost.remotedomain.com/services/remote"
      transformer-refs="Transformers"
      proxy="true"
      synchronous="true" />

      </pass-through-router>

      </outbound>
      </service>

      Show
      <!-- NOTE: host, domain names have been changed from their actual values --> <service name="Eligibility"> <inbound> <cxf:inbound-endpoint address="http://localhost:65080/services/Eligibility" proxy="true" wsdlLocation="Eligibility.wsdl" serviceName="Eligibility" synchronous="true"> <property key="namespace" value="http://mydomain.com" /> </cxf:inbound-endpoint> </inbound> <outbound> <pass-through-router> <cxf:outbound-endpoint address="http://remotehost.remotedomain.com/services/remote" transformer-refs="Transformers" proxy="true" synchronous="true" /> </pass-through-router> </outbound> </service>
    • Log Output:
      Hide
      **** NOTE: This is the exception from the CLIENT, not Mule as Mule does not throw an exception in this case.



      Mar 31, 2009 7:31:22 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept
      INFO: Interceptor has thrown exception, unwinding now
      org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared namespace prefix "xsi" (for attribute "nil")
       at [row,col {unknown-source}]: [1,1601]
      at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:643)
      at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:555)
      at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:64)
      at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
      at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
      at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:449)
      at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1996)
      at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1832)
      at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
      at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:591)
      at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
      at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:296)
      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:242)
      at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
      at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:178)
      at $Proxy38.readConsumerCrossReferenceId(Unknown Source)
      at com.mydomain.ConsumerWSAdapter_Eligibility_Client.main(ConsumerWSAdapter_Eligibility_Client.java:59)
      Caused by: javax.xml.bind.UnmarshalException
       - with linked exception:
      [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "xsi" (for attribute "nil")
       at [row,col {unknown-source}]: [1,1601]]
      at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:422)
      at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:360)
      at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:337)
      at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:628)
      ... 17 more
      Caused by: com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "xsi" (for attribute "nil")
       at [row,col {unknown-source}]: [1,1601]
      at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:630)
      at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:473)
      at com.ctc.wstx.sr.NsAttributeCollector.resolveNamespaces(NsAttributeCollector.java:178)
      at com.ctc.wstx.sr.NsInputElementStack.resolveAndValidateElement(NsInputElementStack.java:374)
      at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2945)
      at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2846)
      at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
      at org.apache.cxf.staxutils.DepthXMLStreamReader.next(DepthXMLStreamReader.java:215)
      at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:225)
      at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:358)
      ... 19 more
      Exception in thread "main" javax.xml.ws.WebServiceException: org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared namespace prefix "xsi" (for attribute "nil")
       at [row,col {unknown-source}]: [1,1601]
      at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:196)
      at $Proxy38.readConsumerCrossReferenceId(Unknown Source)
      at com.mydomain.ConsumerWSAdapter_Eligibility_Client.main(ConsumerWSAdapter_Eligibility_Client.java:59)
      Caused by: org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared namespace prefix "xsi" (for attribute "nil")
       at [row,col {unknown-source}]: [1,1601]
      at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:643)
      at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:555)
      at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:64)
      at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102)
      at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
      at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:449)
      at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1996)
      at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1832)
      at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)
      at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:591)
      at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
      at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:296)
      at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:242)
      at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)
      at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:178)
      ... 2 more
      Caused by: javax.xml.bind.UnmarshalException
       - with linked exception:
      [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "xsi" (for attribute "nil")
       at [row,col {unknown-source}]: [1,1601]]
      at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:422)
      at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:360)
      at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:337)
      at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:628)
      ... 17 more
      Caused by: com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "xsi" (for attribute "nil")
       at [row,col {unknown-source}]: [1,1601]
      at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:630)
      at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:473)
      at com.ctc.wstx.sr.NsAttributeCollector.resolveNamespaces(NsAttributeCollector.java:178)
      at com.ctc.wstx.sr.NsInputElementStack.resolveAndValidateElement(NsInputElementStack.java:374)
      at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2945)
      at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2846)
      at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019)
      at org.apache.cxf.staxutils.DepthXMLStreamReader.next(DepthXMLStreamReader.java:215)
      at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:225)
      at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:358)
      ... 19 more
      Show
      **** NOTE: This is the exception from the CLIENT, not Mule as Mule does not throw an exception in this case. Mar 31, 2009 7:31:22 PM org.apache.cxf.phase.PhaseInterceptorChain doIntercept INFO: Interceptor has thrown exception, unwinding now org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared namespace prefix "xsi" (for attribute "nil")  at [row,col {unknown-source}]: [1,1601] at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:643) at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:555) at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:64) at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221) at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:449) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1996) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1832) at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66) at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:591) at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:296) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:242) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:178) at $Proxy38.readConsumerCrossReferenceId(Unknown Source) at com.mydomain.ConsumerWSAdapter_Eligibility_Client.main(ConsumerWSAdapter_Eligibility_Client.java:59) Caused by: javax.xml.bind.UnmarshalException  - with linked exception: [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "xsi" (for attribute "nil")  at [row,col {unknown-source}]: [1,1601]] at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:422) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:360) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:337) at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:628) ... 17 more Caused by: com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "xsi" (for attribute "nil")  at [row,col {unknown-source}]: [1,1601] at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:630) at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:473) at com.ctc.wstx.sr.NsAttributeCollector.resolveNamespaces(NsAttributeCollector.java:178) at com.ctc.wstx.sr.NsInputElementStack.resolveAndValidateElement(NsInputElementStack.java:374) at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2945) at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2846) at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019) at org.apache.cxf.staxutils.DepthXMLStreamReader.next(DepthXMLStreamReader.java:215) at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:225) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:358) ... 19 more Exception in thread "main" javax.xml.ws.WebServiceException: org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared namespace prefix "xsi" (for attribute "nil")  at [row,col {unknown-source}]: [1,1601] at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:196) at $Proxy38.readConsumerCrossReferenceId(Unknown Source) at com.mydomain.ConsumerWSAdapter_Eligibility_Client.main(ConsumerWSAdapter_Eligibility_Client.java:59) Caused by: org.apache.cxf.interceptor.Fault: Unmarshalling Error: Undeclared namespace prefix "xsi" (for attribute "nil")  at [row,col {unknown-source}]: [1,1601] at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:643) at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:555) at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:64) at org.apache.cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:102) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221) at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:449) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1996) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1832) at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66) at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:591) at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:296) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:242) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:178) ... 2 more Caused by: javax.xml.bind.UnmarshalException  - with linked exception: [com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "xsi" (for attribute "nil")  at [row,col {unknown-source}]: [1,1601]] at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.handleStreamException(UnmarshallerImpl.java:422) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:360) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:337) at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:628) ... 17 more Caused by: com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "xsi" (for attribute "nil")  at [row,col {unknown-source}]: [1,1601] at com.ctc.wstx.sr.StreamScanner.constructWfcException(StreamScanner.java:630) at com.ctc.wstx.sr.StreamScanner.throwParseError(StreamScanner.java:473) at com.ctc.wstx.sr.NsAttributeCollector.resolveNamespaces(NsAttributeCollector.java:178) at com.ctc.wstx.sr.NsInputElementStack.resolveAndValidateElement(NsInputElementStack.java:374) at com.ctc.wstx.sr.BasicStreamReader.handleStartElem(BasicStreamReader.java:2945) at com.ctc.wstx.sr.BasicStreamReader.nextFromTree(BasicStreamReader.java:2846) at com.ctc.wstx.sr.BasicStreamReader.next(BasicStreamReader.java:1019) at org.apache.cxf.staxutils.DepthXMLStreamReader.next(DepthXMLStreamReader.java:215) at com.sun.xml.bind.v2.runtime.unmarshaller.StAXStreamConnector.bridge(StAXStreamConnector.java:225) at com.sun.xml.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(UnmarshallerImpl.java:358) ... 19 more
    • Similar Issues:
      MULE-4288NPE when using CXF as webservice proxy with WSDL
      MULE-4231Add a namespace attribute to the CXF endpoint schema
      MULE-6076WebService Proxy instantiation error
      MULE-4289ClassCastException when defing CXF logging interceptors on CXF web service proxy
      MULE-4735CXF Proxy - soap version is changed
      MULE-925Implementation of a webservice proxy
      MULE-6355soapVersion ignored on CXF proxy
      MULE-4920Proxying POJO with simple frontend without specifying namespace throws NPE
      MULE-6301Soap envelope is invalid after cxf proxy if validation is enabled
      MULE-7466Web service proxy modifies target namespace in WSDL

      Description

      I am proxying a remote webservice using Mule/CXF. The XSI namespace in the response SOAP message from the remote webservice is getting changed from:

      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

      to:

      xmlns:xsi="xsi"

      This results in the following error on the client side when calling the proxy:

      Caused by: com.ctc.wstx.exc.WstxParsingException: Undeclared namespace prefix "xsi" (for attribute "nil")
      at [row,col

      {unknown-source}

      ]: [1,1601]

      I have been able to confirm that Mule/CXF is inserting the incorrect XSI namespace, not the remote web service. When I call the remote service directly using SoapUI the XSI namespace is correct.

      It is of note that a similar problem seems to be occuring with Service Mix, so this may be a problem with CXF itself.

      I have tried to change the namespace in the resulting message using an XSL stylesheet but have so far been unsuccessful.

        Issue Links

          Activity

          Hide
          Scott Rainaldo added a comment -

          I was able to work around this issue using the XSL stylesheet below as a response transformer on the <cxf:outbound-endpoint>.

          The stylesheet essentially copies all of the elements without ANY attributes (including namespace attributes), and re-writes the <soap:Envelope> to ensure that the namespaces from the stylesheet are applied to it.

          It's not ideal by any means, but it works.

          <xsl:stylesheet version="2.0"
          xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
          xmlns="http://mydomain.com">

          <xsl:output omit-xml-declaration="yes" indent="yes" />

          <!-- identity template without namespace nodes -->
          <xsl:template match="*">
          <xsl:element name="

          {name()}

          ">
          <xsl:apply-templates select="@*|node()" />
          </xsl:element>
          </xsl:template>

          <!-- The lack of '@*' means attributes are stripped. -->
          <xsl:template match="text()|comment()|processing-instruction()">
          <xsl:copy>
          <xsl:apply-templates select="node()" />
          </xsl:copy>
          </xsl:template>

          <!-- This will ensure that the Soap:Envelope element gets the namespaces from this stylesheet -->
          <xsl:template match="soap:Envelope">
          <soap:Envelope>
          <xsl:apply-templates select="*" />
          </soap:Envelope>
          </xsl:template>

          </xsl:stylesheet>

          Show
          Scott Rainaldo added a comment - I was able to work around this issue using the XSL stylesheet below as a response transformer on the <cxf:outbound-endpoint>. The stylesheet essentially copies all of the elements without ANY attributes (including namespace attributes), and re-writes the <soap:Envelope> to ensure that the namespaces from the stylesheet are applied to it. It's not ideal by any means, but it works. <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://mydomain.com"> <xsl:output omit-xml-declaration="yes" indent="yes" /> <!-- identity template without namespace nodes --> <xsl:template match="*"> <xsl:element name=" {name()} "> <xsl:apply-templates select="@*|node()" /> </xsl:element> </xsl:template> <!-- The lack of '@*' means attributes are stripped. --> <xsl:template match="text()|comment()|processing-instruction()"> <xsl:copy> <xsl:apply-templates select="node()" /> </xsl:copy> </xsl:template> <!-- This will ensure that the Soap:Envelope element gets the namespaces from this stylesheet --> <xsl:template match="soap:Envelope"> <soap:Envelope> <xsl:apply-templates select="*" /> </soap:Envelope> </xsl:template> </xsl:stylesheet>
          Hide
          Dan Diephouse added a comment -

          Can you please attach a copy of the request message that you're sending? Thanks!

          Show
          Dan Diephouse added a comment - Can you please attach a copy of the request message that you're sending? Thanks!
          Hide
          Dan Diephouse added a comment -

          Ahhhh, I see what is going on now. When your service sends a response, the xsi namespace is declared on the envelope. Then sine Mule only copies the body, it doesn't pick up that namespace, and you end up with broken xml infoset.

          This is indeed a little thorny. This may tie into MULE-4157. I'm going to have to think about how to fix this.

          Show
          Dan Diephouse added a comment - Ahhhh, I see what is going on now. When your service sends a response, the xsi namespace is declared on the envelope. Then sine Mule only copies the body, it doesn't pick up that namespace, and you end up with broken xml infoset. This is indeed a little thorny. This may tie into MULE-4157 . I'm going to have to think about how to fix this.
          Hide
          Scott Rainaldo added a comment -

          That is correct, and this does seem to be related to MULE-4157.

          A limited solution would be to ensure that the namespaces in the resulting SOAP envelope are copied into the Mule return message. Something like a "propagateNamespaces" option on the outbound endpoint (or this could be the default behavior).

          An alternative would be to pass on the entire SOAP message as proposed in 4157.

          Show
          Scott Rainaldo added a comment - That is correct, and this does seem to be related to MULE-4157 . A limited solution would be to ensure that the namespaces in the resulting SOAP envelope are copied into the Mule return message. Something like a "propagateNamespaces" option on the outbound endpoint (or this could be the default behavior). An alternative would be to pass on the entire SOAP message as proposed in 4157.
          Hide
          Dan Diephouse added a comment -

          I think you might be right on the prorogation idea. I kept thinking about repairing namespaces, but clearly prorogation is a bit simpler. The problem is that as far as I can see, CXF has no way to pull out these namespace declarations.

          Which leads me back to MULE-4157. We really need to find a proper way to propagate the soap body/headers without causing severe performance degradation. (i.e. we can't revert to caching a whole DOM tree)

          Show
          Dan Diephouse added a comment - I think you might be right on the prorogation idea. I kept thinking about repairing namespaces, but clearly prorogation is a bit simpler. The problem is that as far as I can see, CXF has no way to pull out these namespace declarations. Which leads me back to MULE-4157 . We really need to find a proper way to propagate the soap body/headers without causing severe performance degradation. (i.e. we can't revert to caching a whole DOM tree)
          Hide
          Scott Rainaldo added a comment -

          Is it possible to fix this properly now that MULE-4157 has been implemented?

          Show
          Scott Rainaldo added a comment - Is it possible to fix this properly now that MULE-4157 has been implemented?
          Hide
          Daniel Zapata added a comment -

          deferred

          Show
          Daniel Zapata added a comment - deferred
          Hide
          Ramiro Rinaudo added a comment -

          Moving open issues from 3.1.2 to 3.1.3

          Show
          Ramiro Rinaudo added a comment - Moving open issues from 3.1.2 to 3.1.3
          Hide
          Evangelina Martinez Ruiz Moreno added a comment -

          Closing issue since in Mule 3 you can set the payload type to envelope which will preserve entire message, including headers and not just the body.

          If problem persists in Mule 3 please reopen and attach a test case.

          Show
          Evangelina Martinez Ruiz Moreno added a comment - Closing issue since in Mule 3 you can set the payload type to envelope which will preserve entire message, including headers and not just the body. If problem persists in Mule 3 please reopen and attach a test case.

            People

            • Assignee:
              Evangelina Martinez Ruiz Moreno
              Reporter:
              Scott Rainaldo
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development