We are unable to create a web service from a wsdl file which needs to be deployed in Websphere Application Server 6.0. We are unable to generate artifacts for

methods which take custom object which has an array of custom objects as one of the instance member variable. We were able to successfully generate artifacts

and deploy on WAS 5 without any issues.

For Ex:
We have a method which takes MarshalServicesRequestType object (as shown in the below wsdl). MarshalServicesRequestType inturn contains an instance

member variable of custom type ServiceDescriptionType[].

We have used the following tools without much success.

- Rational Application Developer 6
- Webshere Application Server toolkit 6
- WSDL2Java utility of WAS6

Note: We do not have the flexibility to change the WSDL (other than just tweak to generate artifacts).


WSDL file Contents:
<"xml version="1.0" encoding="UTF-8"">
<definitions targetNamespace="urn:test.com:interfaces:agent" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:ns="http://schemas.xmlsoap.org/ws/2004/08/addressing/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:mpa="urn:test.com:interfaces:agent" xmlns="http://schemas.xmlsoap.org/wsdl/">
<types>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> </xs:schema>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:mpa="urn:test.com:interfaces:agent" xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="urn:test.com:interfaces:agent" version="1">
<import namespace="http://schemas.xmlsoap.org/ws/2004/08/addressing" schemaLocation="http://schemas.xmlsoap.org/ws/2004/08/addressing/"/>
<!--
<import schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-->

<complexType name="LocaleTextType">
<simpleContent>
<extension base="string">
<!-- the below line is commented. Since its giving erros in RAD -->
<!-- <attribute ref="xml:lang" use="optional"/> -->
</extension>
</simpleContent>
</complexType>
<simpleType name="StatusCodeType">
<restriction base="string">
<enumeration value="success"/>
<enumeration value="badRequest"/>
<enumeration value="busy"/>
<enumeration value="timeout"/>
<enumeration value="unavailable"/>
<enumeration value="serverError"/>
<enumeration value="unsupportedOperation"/>
<enumeration value="notAuthorized"/>
<enumeration value="serviceNotFound"/>
<enumeration value="serviceReportedError"/>
</restriction>
</simpleType>
<complexType name="RequestStatusType">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="description" type="mpa:LocaleTextType"/>
</sequence>
<attribute name="status" type="mpa:StatusCodeType" use="required"/>
</complexType>
<complexType name="ServiceDescriptionType">
<sequence>
<element name="name" type="xsd:string"/>
<element maxOccurs="unbounded" minOccurs="0" name="description" type="mpa:LocaleTextType"/>
<element maxOccurs="unbounded" minOccurs="1" name="functionalEndpoint" type="wsa:EndpointReferenceType"/>
<element name="functionalEndpointWSDL" type="xsd:anyURI"/>
<element minOccurs="0" name="manageabilityEndpoint" type="wsa:EndpointReferenceType"/>
<element name="managed" type="xsd:boolean"/>
</sequence>
</complexType>
<element name="DisplayServicesRequest" type="mpaisplayServicesRequestType"/>
<complexType name="DisplayServicesRequestType">
<annotation>
<documentation>Request to retrieve all available services.</documentation>
</annotation>
</complexType>
<element name="DisplayServicesResponse" type="mpaisplayServicesResponseType"/>
<complexType name="DisplayServicesResponseType">
<annotation>
<documentation>Response from a displayServices request.</documentation>
</annotation>
<sequence>
<element name="status" type="mpa:RequestStatusType"/>
<element maxOccurs="unbounded" minOccurs="0" name="service" type="mpa:ServiceDescriptionType"/>
</sequence>
</complexType>
<complexType name="ServiceRequestStatusType">
<complexContent>
<extension base="mpa:RequestStatusType">
<sequence>
<element name="service" type="mpa:ServiceDescriptionType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<element name="MarshalServicesRequest" type="mpa:MarshalServicesRequestType"/>
<complexType name="MarshalServicesRequestType">
<annotation>
<documentation>Request to manage a set of services.</documentation>
</annotation>
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="services" type="mpa:ServiceDescriptionType"/>
</sequence>
</complexType>
<element name="MarshalServicesResponse" type="mpa:MarshalServicesResponseType"/>
<complexType name="MarshalServicesResponseType">
<annotation>
<documentation>Response from a marshalServices request.</documentation>
</annotation>
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="status" type="mpa:ServiceRequestStatusType"/>
</sequence>
</complexType>
<element name="UnmarshalServicesRequest" type="mpa:UnmarshalServicesRequestType"/>
<complexType name="UnmarshalServicesRequestType">
<annotation>
<documentation>Request to unmanage a set of services.</documentation>
</annotation>
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="services" type="mpa:ServiceDescriptionType"/>
</sequence>
</complexType>
<element name="UnmarshalServicesResponse" type="mpa:UnmarshalServicesResponseType"/>
<complexType name="UnmarshalServicesResponseType">
<annotation>
<documentation>Response from an unmarshalServices request.</documentation>
</annotation>
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="status" type="mpa:ServiceRequestStatusType"/>
</sequence>
</complexType>
</schema>
</types>
<message name="unmarshalServicesResponse">
<part name="unmarshalServicesResponse" element="mpa:UnmarshalServicesResponse"/>
</message>
<message name="marshalServices">
<part name="marshalServices" element="mpa:MarshalServicesRequest"/>
</message>
<message name="marshalServicesResponse">
<part name="marshalServicesResponse" element="mpa:MarshalServicesResponse"/>
</message>
<message name="displayServices">
<part name="displayServices" element="mpaisplayServicesRequest"/>
</message>
<message name="displayServicesResponse">
<part name="displayServicesResponse" element="mpaisplayServicesResponse"/>
</message>
<message name="unmarshalServices">
<part name="unmarshalServices" element="mpa:UnmarshalServicesRequest"/>
</message>
<portType name="TestAgentPortType">
<operation name="displayServices">
<input message="mpa:displayServices"/>
<output message="mpa:displayServicesResponse"/>
</operation>
<operation name="marshalServices">
<input message="mpa:marshalServices"/>
<output message="mpa:marshalServicesResponse"/>
</operation>
<operation name="unmarshalServices">
<input message="mpa:unmarshalServices"/>
<output message="mpa:unmarshalServicesResponse"/>
</operation>
</portType>
<binding name="TestAgentSoapBinding" type="mpa:TestAgentPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="displayServices">
<soapperation soapAction="urn:test.com:interfaces:agent:displayServices"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="marshalServices">
<soapperation soapAction="urn:test.com:interfaces:agent:marshalServices"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
<operation name="unmarshalServices">
<soapperation soapAction="urn:test.com:interfaces:agent:unmarshalServices"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="TestAgentService">
<port name="TestAgent" binding="mpa:TestAgentSoapBinding">
<soap:address location="http://10.154.22.27:9081/agent/services/TestAgent"/>
</port>
</service>
</definitions>


Please help.