Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: 1.1.1
-
Fix Version/s: 1.1.2
-
Component/s: None
-
Labels:None
-
Environment:Windows XP Professional SP2
Sun Java JDK 1.5.0_07
Tomcat 5.5.17
-
Number of attachments :
Description
I generated a service from an existing WSDL using the WsGen Ant task.
I then looked at the generated WSDL returned by http://localhost/MyService?wsdl.
The Response Message of the generated WSDL is structurally different from the original WSDL fed into WsGen.
My original WSDL had the following specification for the response message:
<xsd:schema targetNamespace="http://ws.wendys.com/AppRelease/"
elementFormDefault="unqualified"
attributeFormDefault="unqualified">
<xsd:complexType name="AppReleaseType">
<xsd:sequence>
<xsd:element type="xsd:string" name="applicationId" minOccurs="1" />
<xsd:element type="xsd:string" name="applicationName" minOccurs="1" />
<xsd:element type="xsd:date" name="availabilityStart" minOccurs="1" />
<xsd:element type="xsd:date" name="availabilityStop" minOccurs="0" />
<xsd:element type="xsd:string" name="releaseId" minOccurs="1" />
<xsd:element type="xsd:string" name="releaseName" minOccurs="1" />
<xsd:element type="xsd:string" name="releaseURL" minOccurs="1" />
<xsd:element type="xsd:string" name="releaseText" minOccurs="1" />
<xsd:element type="xsd:string" name="releaseDesc" minOccurs="0" />
<xsd:element type="xsd:nonNegativeInteger" name="releaseDispOrder" minOccurs="1" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="getAppReleasesResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element type="acre:AppReleaseType" name="AppRelease" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
.
.
.
<wsdl:message name="getAppReleasesResponseMessage">
<wsdl:part element="acre:getAppReleasesResponse" name="garResponse" />
</wsdl:message>
In the generated WSDL an extra element, ArrayOfAppRelease, was created and the structure of the response message was changed. The generated WSDL had the following specification for the returned message (reformatted to better fit the page and to remove extra xsd:schema groups that don't add anything to the final WSDL):
<xsd:schema targetNamespace="http://apprelease.ws.wendys.com"
elementFormDefault="qualified"
attributeFormDefault="qualified">
<xsd:complexType name="GetAppReleasesType">
<xsd:sequence>
<xsd:element name="appType" type="xsd:string" minOccurs="0" nillable="true" />
<xsd:element name="endPoint" type="xsd:string" minOccurs="0" nillable="true" />
<xsd:element name="language" type="xsd:string" minOccurs="0" nillable="true" />
<xsd:element name="siteNum" type="xsd:int" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="GetAppReleasesResponse">
<xsd:sequence>
<xsd:element name="appRelease" type="ns2:ArrayOfAppReleaseType" minOccurs="0" nillable="true" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ArrayOfAppReleaseType">
<xsd:sequence>
<xsd:element name="AppReleaseType"
type="ns2:AppReleaseType"
nillable="true"
minOccurs="0"
maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="AppReleaseType">
<xsd:sequence>
<xsd:element name="applicationId" type="xsd:string" minOccurs="0" nillable="true" />
<xsd:element name="applicationName" type="xsd:string" minOccurs="0" nillable="true" />
<xsd:element name="availabilityStart" type="xsd:dateTime" minOccurs="0" nillable="true" />
<xsd:element name="availabilityStop" type="xsd:dateTime" minOccurs="0" nillable="true" />
<xsd:element name="releaseDesc" type="xsd:string" minOccurs="0" nillable="true" />
<xsd:element name="releaseDispOrder" type="xsd:integer" minOccurs="0" nillable="true" />
<xsd:element name="releaseId" type="xsd:string" minOccurs="0" nillable="true" />
<xsd:element name="releaseName" type="xsd:string" minOccurs="0" nillable="true" />
<xsd:element name="releaseText" type="xsd:string" minOccurs="0" nillable="true" />
<xsd:element name="releaseURL" type="xsd:string" minOccurs="0" nillable="true" />
</xsd:sequence>
</xsd:complexType>
<xsd:element name="getAppReleasesRequest" type="ns2:GetAppReleasesType" />
<xsd:element name="getAppReleasesResponse" type="ns2:GetAppReleasesResponse" />
</xsd:schema>
.
.
.
<wsdl:message name="getAppReleasesResponse">
<wsdl:part element="ns1:getAppReleasesResponse" name="getAppReleasesResponse" />
</wsdl:message>
Note the extra "appRelease" element in the generated Response Message that does not exist in my original WSDL.
I've attached my original WSDL and the generated WSDL for comparison purposes.
This 3rd attachment is the real original WSDL.
The 1st attachment was a working copy I had created to do some comparisons. Among other things, I had removed documentation from the working copy.