Hi,

I am using a WSDL file supplied to be by a third party and I suspect it
doesn't quite reflect what their .NET server is returning in the SOAP
messages. I am getting this exception:

java.io.IOException: Non nillable element 'requestCategoryCode' is null.
        at
org.apache.axis.encoding.ser.BeanSerializer.serialize(BeanSerializer.
java:215)
        at
org.apache.axis.encoding.SerializationContext.serializeActual(Seriali
zationContext.java:1426)
        at
org.apache.axis.encoding.SerializationContext.serialize(Serialization
Context.java:914)
        at
org.apache.axis.encoding.SerializationContext.serialize(Serialization
Context.java:702)
        at
org.apache.axis.encoding.ser.BeanSerializer.serialize(BeanSerializer.
java:230)
        at
org.apache.axis.encoding.SerializationContext.serializeActual(Seriali
zationContext.java:1426)
        at
org.apache.axis.encoding.SerializationContext.serialize(Serialization
Context.java:914)

So looking at (an extract of) the XML received by Axis:

<AdministrationDetails><ComplaintTypeCode>PESTM</ComplaintTypeCode><Com
plaintTypeText>Mice</ComplaintTypeText><AllocatedToCode>CRMTES</AllocatedToCode>
<AllocatedToText>CRM Test
Officer</AllocatedToText><HowReceivedCode>CC</HowRecei
vedCode><HowReceivedText>Call
Centre</HowReceivedText><TimeReceived>2005-08-04T0
6:52:03.0000000+01:00</TimeReceived><StatusCode>REC</StatusCode><StatusText>Rece
ived</StatusText><AreaTeamCode>E</AreaTeamCode><AreaTeamText>Eastern Area
Team</
AreaTeamText></AdministrationDetails>

And here's the relevant part of the WSDL:

      <xs:complexType name="AdministrationDetailsType">
              <xs:annotation>
                        <xs:documentation>Contains details of status,
allocated officer
codes etc</xs:documentation>
        </xs:annotation>
                <xs:sequence>
                          <xs:element name="ComplaintTypeCode"
                          type="uni:CNCODE_CodeValue">
                                      <xs:annotation>
                                                    <xs:documentation>Code
value for complaint
type</xs:documentation>
            </xs:annotation>
                      </xs:element>
                                <xs:element name="ComplaintTypeText"
                                type="uni:CNCODE_TextValue">
                                            <xs:annotation>

<xs:documentation>Full text of complaint type - read
only</xs:documentation>
            </xs:annotation>
                      </xs:element>
                                <xs:element name="RequestCategoryCode"
                                type="uni:CNCODE_CodeValue">
                                            <xs:annotation>

<xs:documentation>complaint type category code if set
</xs:documentation>
            </xs:annotation>
                      </xs:element>
         <xs:element name="AllocatedToCode" type="uni:CNCODE_CodeValue">
                     <xs:annotation>
                                   <xs:documentation>Officer code for
allocated officer</xs:documenta
tion>
            </xs:annotation>
                      </xs:element>
                                <xs:element name="AllocatedToText"
type="uni:CNCODE_TextValue">
            <xs:annotation>
                          <xs:documentation>Full name of allocated
officer</xs:documentation
>
            </xs:annotation>
                      </xs:element>
                                <xs:element name="TimeAllocated"
type="xs:dateTime" minOccurs="0">
            <xs:annotation>
                          <xs:documentation>The date and time the request
was allocated to a
n officer to investigate</xs:documentation>
            </xs:annotation>
                      </xs:element>
                                <xs:element name="HowReceivedCode"
type="uni:CNCODE_CodeValue">
            <xs:annotation>
                          <xs:documentation>Code value indicating how the
complaint was rece
ived</xs:documentation>
            </xs:annotation>
                      </xs:element>
                                <xs:element name="HowReceivedText"
type="uni:CNCODE_TextValue">
            <xs:annotation>
                          <xs:documentation>Full description of how received
code</xs:docume
ntation>
            </xs:annotation>
                      </xs:element>

(etc.)

It would seem to me that this change needs to be made:

          <xs:element name="RequestCategoryCode" type="uni:CNCODE_CodeValue"
minOccurs="0" nillable="true">

As the .NET server has not sent back a RequestCategoryCode element.

Does this sound correct?

Thanks,


John

Reply via email to