Mule
  1. Mule
  2. MULE-5113

CXF: getting exception when using payload="envelope" in combination with wsdlLocation when the wsdl contains headers

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Critical Critical
    • Resolution: Fixed
    • Affects Version/s: 2.2.6 (EE only), 3.0.0
    • Fix Version/s: 2.2.7 (EE only), 3.0.1
    • Component/s: Modules: CXF
    • Labels:
      None
    • User impact:
      High
    • Similar Issues:
      MULE-7189CXF Proxy service: When specifying a wsdlLocation of a non .net based SOAP api and requesting the proxy to use only the body of the envelope, the payload gets modified and loses part of it.
      MULE-4288NPE when using CXF as webservice proxy with WSDL
      MULE-5552Mismatch between cxf generated code and mule method invocation when using custom headers
      MULE-7199CXF Proxy service: When specifying a wsdlLocation of a .net based SOAP api and requesting the proxy to use only the body of the envelope, the payload keeps the entire envelope.
      MULE-5508Unable to specify portname when configuring wsdl cxf endpoint
      MULE-6526Chunk header error in web services when using username security with CXF interceptor in a client
      MULE-5313CXF proxy fails if WSDL and serviceName is configured and WSDL includes headers
      MULE-6993ClassCast exception when using cxf:proxy-service and validationEnabled, and the request contains a CDATA field.
      MULE-4731Mule sends Transfer-Encoding header when used with servlet transport, confusing the servlet container
      MULE-4311Defining a cxf:jetty// input endpoint results in the wsdl service url to be jetty:// and not http://

      Description

      This issue was created to track the fix for the EE-2002 issue.
      This is the original comment from it:

      I have tested the Mule 2.2.7 fix against one of our test services. The
      service in question no longer throws a TransformerException but the
      request still fails with the following exception....

      WARNING: Interceptor for

      {http://ctp.wcsl.com/wsdl/LottoWager-v1}

      LottoWagerBinding_v1_0 has
      thrown exception, unwinding now
      org.apache.cxf.interceptor.Fault: Could not write to XMLStreamWriter.
      at
      org.apache.cxf.interceptor.StaxOutInterceptor$StaxOutEndingInterceptor.handleMessage(StaxOutInterceptor.java:173)
      at
      org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:243)
      at
      org.apache.cxf.phase.PhaseInterceptorChain.resume(PhaseInterceptorChain.java:218)
      at
      org.mule.transport.cxf.CxfServiceComponent$1.write(CxfServiceComponent.java:273)
      at
      org.mule.transport.http.HttpServerConnection.writeResponse(HttpServerConnection.java:315)
      at
      org.mule.transport.http.HttpMessageReceiver$HttpWorker.run(HttpMessageReceiver.java:191)
      at org.mule.work.WorkerContext.run(WorkerContext.java:310)
      at
      edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1061)
      at
      edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:575)
      at java.lang.Thread.run(Thread.java:619)
      Caused by: javax.xml.stream.XMLStreamException: Trying to write
      END_DOCUMENT when document has no root (ie. trying to output empty
      document).
      at
      com.ctc.wstx.sw.BaseStreamWriter.throwOutputError(BaseStreamWriter.java:1473)
      at
      com.ctc.wstx.sw.BaseStreamWriter.reportNwfStructure(BaseStreamWriter.java:1502)
      at
      com.ctc.wstx.sw.BaseStreamWriter.finishDocument(BaseStreamWriter.java:1663)
      at
      com.ctc.wstx.sw.BaseStreamWriter.writeEndDocument(BaseStreamWriter.java:585)
      at
      org.apache.cxf.interceptor.StaxOutInterceptor$StaxOutEndingInterceptor.handleMessage(StaxOutInterceptor.java:163)
      ... 9 more

      I have attached a copy of the console log, an export of the Mule project
      and an example soap request. The service I have switched over to use the
      cxf:inbound-endpoint wsdlLocation attribute is called
      WHS_LottoWagerStub-v1 - the endpoint address is
      http://localhost:8888/whs/LottoWager-v1.

      Let me know if you require any further details.

        Activity

        No work has yet been logged on this issue.

          People

          • Assignee:
            Pablo Kraan
            Reporter:
            Pablo Kraan
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development