Doc/literal messages must reference 0 or 1 body parts, so getAvailablePlatforms is not ill-formed, but I recommend that you supply an input message anyway (define an empty element), because otherwise it's challenging to configure Axis. (You might consider adopting the wrapped convention, which will make configuration much easier all the way around.)

You also must remove the namespace attributes from the <soap:body> definitions. (The namespace attribute must be used only with RPC style bindings).

Anne

On 1/5/06, Ted Jones <[EMAIL PROTECTED]> wrote:
This looks like a problem:

The following operations were ill-formed or referenced ill-formed schema
constructs:
getAvailablePlatforms : Doc/Lit operation's soap:body referenced 0
parts, must reference exactly 1 part
getAvailableOsVersions : Doc/Lit operation's soap:body referenced 2
parts, must reference exactly 1 part

What validator did you use? Did you validate against WSI?

-----Original Message-----
From: Bram Biesbrouck [mailto: [EMAIL PROTECTED]]
Sent: Thursday, January 05, 2006 8:12 AM
To: [email protected]
Subject: my wsdl flaw

Hi everybody,

Here I am again (it's driving me crazy, though).
After a lot of testing and validating, my wsdl file still doesn't get
parsed well by WSDL2java (NullPointerException). I tried two validators
and they both tell me everything is fine, so perhaps, I'm thinking the
flaw may be in WSDL2java (if that is even possible).
I'm hoping someone on this list has more knowledge on the topic than I
do, so if you do, please lend me a hand.

Here's my WSDL file:

<?xml version=" 1.0" encoding="UTF-8"?>

<definitions name="ScreenkastMetaOptionQueryService"

targetNamespace="http://ws.test.com/screenkast/ScreenkastMetaOptionQuery
"
             xmlns="http://schemas.xmlsoap.org/wsdl/"
             xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/ "
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"

xmlns:tns=" http://ws.test.com/screenkast/ScreenkastMetaOptionQuery"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             xmlns:myxsd=" http://ws.test.com/screenkast/xsd"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

        <!-- TYPE DEFINITIONS -->

        <types>
                <schema
targetNamespace="http://ws.test.com/screenkast/xsd"
                        xmlns=" http://www.w3.org/2001/XMLSchema"
                        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
                        elementFormDefault="qualified">

                        <complexType name="PlatformSelectionType">
                                <all>
                                        <element name="id"
type="xsd:int"/>
                                        <element name="title"
type="xsd:string"/>
                                </all>
                        </complexType>

                        <complexType name="PlatformArrayType">
                                <sequence>
                                        <element name="platform"
minOccurs="0" maxOccurs="unbounded"
type="myxsd:PlatformSelectionType"/>
                                </sequence>
                        </complexType>

                        <complexType name="OsSelectionType">
                                <all>
                                        <element name="id"
type="xsd:int"/>
                                        <element name="title"
type="xsd:string"/>
                                </all>
                        </complexType>

                        <complexType name="OsArrayType">
                                <sequence>
                                        <element name="os" minOccurs="0"
maxOccurs="unbounded"
type="myxsd:OsSelectionType"/>
                                </sequence>
                        </complexType>

                        <complexType name="OsVersionSelectionType">
                                <all>
                                        <element name="id"
type="xsd:int"/>
                                        <element name="title"
type="xsd:string"/>
                                </all>
                        </complexType>

                        <complexType name="OsVersionArrayType">
                                <sequence>
                                        <element name="osVersion"
minOccurs="0" maxOccurs="unbounded"
type="myxsd:OsVersionSelectionType"/>
                                </sequence>
                        </complexType>

                        <element name="PlatformSelection"
type="myxsd:PlatformSelectionType"/>
                        <element name="PlatformArray"
type="myxsd:PlatformArrayType"/>

                        <element name="OsSelection"
type="myxsd:OsSelectionType"/>
                        <element name="OsArray"
type="myxsd:OsArrayType"/>

                        <element name="OsVersionSelection"
type="myxsd:OsVersionSelectionType"/>
                        <element name="OsVersionArray"
type="myxsd:OsVersionArrayType"/>

                </schema>
        </types>

        <!-- MESSAGE DEFINITIONS -->

        <message name="getAvailablePlatformsRequest"/>
        <message name="getAvailablePlatformsResponse">
                <part name="return" element="myxsd:PlatformArray"/>
        </message>

        <message name="getAvailableOSsRequest">
                <part name="platform"
element="myxsd:PlatformSelection"/>
        </message>
        <message name="getAvailableOSsResponse">
                <part name="return" element="myxsd:OsArray"/>
        </message>

        <message name="getAvailableOsVersionsRequest">
                <part name="platform"
element="myxsd:PlatformSelection"/>
                <part name="os" element="myxsd:OsSelection"/>
        </message>
        <message name="getAvailableOsVersionsResponse">
                <part name="return" element="myxsd:OsVersionArray"/>
        </message>

        <!-- PORT DEFINITIONS -->

        <portType name="ScreenkastMetaOptionQueryPortType">
                <operation name="getAvailablePlatforms">
                        <input
message="tns:getAvailablePlatformsRequest"/>
                        <output
message="tns:getAvailablePlatformsResponse"/>
                </operation>

                <operation name="getAvailableOSs">
                        <input message="tns:getAvailableOSsRequest"/>
                        <output message="tns:getAvailableOSsResponse"/>
                </operation>

                <operation name="getAvailableOsVersions">
                        <input
message="tns:getAvailableOsVersionsRequest"/>
                        <output
message="tns:getAvailableOsVersionsResponse"/>
                </operation>
        </portType>

        <!-- BINDING DEFINITIONS -->

        <binding name="ScreenkastMetaOptionQueryBinding"
type="tns:ScreenkastMetaOptionQueryPortType">
                <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>

                <operation name="getAvailablePlatforms">
                        <soap:operation style="document"
soapAction="getAvailablePlatforms"/>
                        <input>
                                <soap:body use="literal"
namespace="http://ws.test.com/screenkast/ScreenkastMetaOptionQuery"/>
                        </input>
                        <output>
                                <soap:body use="literal"
namespace="http://ws.test.com/screenkast/ScreenkastMetaOptionQuery"/>
                        </output>
                </operation>

                <operation name="getAvailableOSs">
                        <soap:operation style="document"
soapAction="getAvailableOSs"/>
                        <input>
                                <soap:body use="literal"
namespace="http://ws.test.com/screenkast/ScreenkastMetaOptionQuery"/>
                        </input>
                        <output>
                                <soap:body use="literal"
namespace="http://ws.test.com/screenkast/ScreenkastMetaOptionQuery"/>
                        </output>
                </operation>

                <operation name="getAvailableOsVersions">
                        <soap:operation style="document"
soapAction="getAvailableOsVersions"/>
                        <input>
                                <soap:body use="literal"
namespace="http://ws.test.com/screenkast/ScreenkastMetaOptionQuery"/>
                        </input>
                        <output>
                                <soap:body use="literal"
namespace="http://ws.test.com/screenkast/ScreenkastMetaOptionQuery"/>
                        </output>
                </operation>
        </binding>

        <!-- SERVICE DEFINITIONS -->

        <service name="ScreenkastMetaOptionQueryService">
                <documentation>ScreenKast web service</documentation>
                <port name="ScreenkastMetaOptionQueryPort"
binding="tns:ScreenkastMetaOptionQueryBinding">
                        <soap:address
location=" http://beligum.org/screenkast.wsdl"/>
                </port>
        </service>

</definitions>


Reply via email to