Uploaded image for project: 'Axis'
  1. Axis
  2. AXIS-2664

Axis generate invalid soap when using RPC/encoded where exists omittable fields (minOccurs=0) and nillable=false

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.4
    • None
    • None

    Description

      While using axis 1.4 with webMethods EAI system I have encountered the following problem :

      Axis generate an invalid soap message in RPC/encoded WS where exists omittable (minOccurs="0") fields and nillable = "false".
      Axis don't omit the field when null but put it in soap message with nill value.

      Exploring source code I have found the following check in org.apache.axis.encoding.ser.BeanSerializer.java class at row : 222

      // if meta data says minOccurs=0, then we can skip
      // it if its value is null and we aren't doing SOAP
      // encoding.
      if (isOmittable && !isEncoded)

      { continue; }

      It seams a choice to not apply omittable behavior while using soap/encoding. Is it correct ? Is it a standard ? WebMethods aspect that this field was omitted and not nill.

      I fixed it just as follow :

      // if meta data says minOccurs=0, then we can skip
      // it if its value is null and we aren't doing SOAP
      // encoding.
      if (isOmittable){ // && !isEncoded) { continue; }

      What can I aspect on next version of Axis ?

      Thx

      Attachments

        Activity

          People

            Unassigned Unassigned
            patricknoir Patrick Di Loreto
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: