axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Pantvaidya, Vishwajit" <vpant...@selectica.com>
Subject Axis2 1.3 wsdl2java generates code with missing methods
Date Wed, 24 Oct 2007 00:24:51 GMT
I am using wsdl2java to generate java code from a wsdl using wsdl2java options "-o -ss -sd
-ssi -f -uw -uri -ns2p". The result includes a MessageReceiverInOut class that is missing
a method resulting in a compiletime error "method wrapIsUploadAllowed(OperationStatusType)
is undefined for the type ...MessageReceiverInOut".

I observed that this seems to happen when wsdl parts in different messages refer to the same
complex type. In such cases, the wrap methods in the MessageReceiver class for the first operation
is created while that for the other one is not created. E.g. in this case the method wrapUpload(OperationStatusType)
gets created while wrapIsUploadAllowed(OperationStatusType) is missing.

Wsdl snippet is included below.

Is this a bug?


                                    <s:complexType name="OperationStatusType">
                                                <s:sequence>
                                                            <s:element name="successFlag"
type="s:boolean"/>
                                                            <s:element name="messageLevel"
type="s:string"/>
                                                            <s:element name="messageCode"
type="s:string"/>
                                                            <s:element name="message" type="s:string"/>
                                                </s:sequence>
                                    </s:complexType>
                                    <s:element name="OperationStatusElement" type="tns:OperationStatusType"/>

                                    <s:element name="UploadRequestElement">
                                                <s:complexType>
                                                            <s:sequence>
                                                                        <s:element name="sessiontoken"
type="s:string"/>
                                                                        <s:element name="trackingnumber"
type="s:string"/>
                                                                        <s:element name="version"
type="s:int"/>
                                                            </s:sequence>
                                                </s:complexType>>
                                    </s:element>

                                    <s:element name="IsUploadAllowedRequestElement">
                                                <s:complexType>
                                                            <s:sequence>
                                                                        <s:element name="SessionToken"
type="s:string"></s:element>
                                                                        <s:element name="TrackingNumber"
type="s:string"></s:element>
                                                                        <s:element name="Version"
type="s:int"></s:element>
                                                            </s:sequence>
                                                </s:complexType>
                                    </s:element>
...         <wsdl:message name="UploadRequest">
                        <wsdl:part name="uploadrequest" element="tns:UploadRequestElement"></wsdl:part>
            </wsdl:message>
            <wsdl:message name="UploadResponse">
                        <wsdl:part name="uploadoperationstatus" element="tns:OperationStatusElement"></wsdl:part>
            </wsdl:message>

            <wsdl:message name="IsUploadAllowedRequest">
                        <wsdl:part name="uploadcheckrequest" element="tns:IsUploadAllowedRequestElement"></wsdl:part>
            </wsdl:message>
            <wsdl:message name="IsUploadAllowedResponse">
                        <wsdl:part name="uploadcheckoperationstatus" element="tns:OperationStatusElement"></wsdl:part>
            </wsdl:message>
...
                        <wsdl:operation name="Upload">
                                    <wsdl:input message="tns:UploadRequest"></wsdl:input>
                                    <wsdl:output message="tns:UploadResponse"></wsdl:output>
                        </wsdl:operation>
                        <wsdl:operation name="IsUploadAllowed">
                                    <wsdl:input message="tns:IsUploadAllowedRequest"></wsdl:input>
                                    <wsdl:output message="tns:IsUploadAllowedResponse"></wsdl:output>
                        </wsdl:operation>
...
                        <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document"/>
                        <wsdl:operation name="Upload">
                                    <soap:operation soapAction="" style="document"/>
                                    <wsdl:input>
                                                <soap:body use="literal"/>
                                    </wsdl:input>
                                    <wsdl:output>
                                                <soap:body use="literal"/>
                                    </wsdl:output>
                        </wsdl:operation>
                        <wsdl:operation name="IsUploadAllowed">
                                    <soap:operation soapAction="" style="document"/>
                                    <wsdl:input>
                                                <soap:body use="literal"/>
                                    </wsdl:input>
                                    <wsdl:output>
                                                <soap:body use="literal"/>
                                    </wsdl:output>
                        </wsdl:operation>
...

Mime
View raw message