Loading ...
Sorry, an error occurred while loading the content.

4920SOAP::Lite service - Trouble accepting "enumeration" types

Expand Messages
  • pfconrey
    Oct 10, 2005
      I have a SOAP::Lite service method that takes two parameters: a string
      and a custom-defined "Address" type. The address type has a member
      that is of type "ContactLocation", which is defined in the WSDL schema as:

      <xsd:simpleType name="ContactLocation">
      <xsd:restriction base="xsd:string">
      <xsd:enumeration value="NA" />
      <xsd:enumeration value="Home" />
      <xsd:enumeration value="Business" />
      <xsd:enumeration value="Travel" />
      </xsd:restriction>
      </xsd:simpleType>

      When the client calls the service and passes in a valid address
      (namespace declarations and additional info removed for clarity):

      <soap:Envelope>
      <soap:Body>
      <tns:AddOptOut>
      <Address xsi:type="tns:Address">
      <Type xsi:type="tns:ContactLocation">NA</Type>
      blah, blah, blah...
      </Address>
      </tns:AddOptOut>
      </soap:Body>
      </soap:Envelope>


      I get the following error (again, namespace attributes removed to make
      it easier to read):

      <SOAP-ENV:Envelope>
      <SOAP-ENV:Body>
      <SOAP-ENV:Fault>
      <faultcode>SOAP-ENV:Client</faultcode>
      <faultstring>
      Application failed during request deserialization:
      Unrecognized type 'ContactLocation'
      </faultstring>
      </SOAP-ENV:Fault>
      </SOAP-ENV:Body>
      </SOAP-ENV:Envelope>

      Where in the process can I look at the incoming soap request and
      customize the deserialization?
    • Show all 2 messages in this topic