Uploaded image for project: 'CXF'
  1. CXF
  2. CXF-1551

validation against XML schema - leads to invalid soap response

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.1
    • Fix Version/s: 2.1.1, 2.0.7
    • Component/s: None
    • Labels:
      None

      Description

      when XML schema validation is enabled, and mandatory element is missing (probably the same for any other error) in CXF-generated response, then response is invalid in some cases.

      E.g. such response is generated from modified wsdl_first sample:

      <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><sayHiResponse xmlns="http://apache.org/hello_world_soap_http/types"><responseType>Executing operation sayHi1</responseType><responseType2><responseType>THIS IS IMPORTANT .. VERY LONG TEXT ..SOMETHING WILL BE flushed probably and that's why cannot be removed later when fault should replace content ........................................................................................................................................................................................................................................................ ................................................................................................................................................................................................... ................................................................................................................................................................................................... .................................................................................................................................................................................. .................................................................................................................... ........................................................................................................................................................................................................................................................ .......................................................................................................................................................................................... ....................................................................................................................... .......................................................................................................................... .............................................................................................................................................................................................. ............................................................................................................................................. ............................................................................................................................................................................................................................... ....................................................................................................................................................................................................................................................................................................................................................................................................................................................... ................................................................................................................................................ .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................... .............................................. ........................................................... ............................................................................................... ........................................................................................................................... .................................<soap:Fault><faultcode>soap:Server</faultcode><faultstring>Marshalli
      ng Error: cvc-complex-type.2.4.a: Invalid content was found starting with element 'responseType2'. One of '

      {"http://apache.org/hello_world_soap_http/types":responseType}

      ' is expected.</faultstring></soap:Fault></soap:Body></soap:Envelope>

      in attachment you can find modified sample I used to show the bug in simple enough project. Just do "ant server" and then invoke sayHi from soapUi or other tool, You should see response listed above.

      Dans comment from mailing list:
      Basically, fixing this will require breaking the streaming. Most likely,
      if validation is turned on, we'll need to buffer the message to a cached
      stream, and if that doesn't result in a error, then flush the buffer to
      the real output stream. That will be a little bit slower, but would fix
      this issue.

        Attachments

        1. wsdl_first.rar
          11 kB
          jmi

          Issue Links

            Activity

              People

              • Assignee:
                dkulp Daniel Kulp
                Reporter:
                jmi jmi
              • Votes:
                1 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: