Ne'er mind on this one. I believe this is a bug in the SOAP::Lite
module (document/literal support is experimental at this point)--I've
got a patch for that module that seems like it'll fix the problem.

-dan

On 9/22/06, D. Kreft <[EMAIL PROTECTED]> wrote:
I've got what looks like an aberration in my Axis2-generated WSDL
(from yesterday's nightly, though. I'm not exactly a WSDL guru or
anything, but the following line is causing my Perl client (a
hand-made SOAP::Lite client that works just peachy with the same
service running under Axis1.4) to barf:

    <wsdl:message name="getAllRequestsMessage"/>

   <wsdl:message name="getAllRequestsResponse">
        <wsdl:part name="part1" element="ns1:getAllRequestsResponse"/>
    </wsdl:message>

Note how there's no <wsdl:part> for getAllRequestsMessage, unlike a
similar method in the same document:

    <!-- Generated by Axis2 1.0 -->
    <wsdl:message name="getRequestsByPriorityMessage">
        <wsdl:part name="part1" element="ns1:getRequestsByPriority"/>
    </wsdl:message>

    <wsdl:message name="getRequestsByPriorityResponse">
        <wsdl:part name="part1" element="ns1:getRequestsByPriorityResponse"/>
    </wsdl:message>

I'm guessing that it's empty because this method takes no arguments
(see method definition below), and this
*might* be a deficiency with SOAP::Lite, however, the method
(getAllRequests()) is "WSDLed" by Axis1.4 like so:

    <!-- Generated by Axis 1.4 -->
    <wsdl:message name="getAllRequestsRequest">
        <wsdl:part element="impl:getAllRequests" name="parameters"/>
    </wsdl:message>

    <wsdl:message name="getAllRequestsResponse">
        <wsdl:part element="impl:getAllRequestsResponse" name="parameters"/>
    </wsdl:message>

Here are the relevant lines from my services.xml:

    <operation name="getAllRequests">
        <messageReceiver
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    </operation>
    <operation name="getRequestsByPriority">
        <messageReceiver
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
    </operation>

And the method definitions in my service implementation class. This
same class is used by
both Axis and Axis2

    @SuppressWarnings("unchecked")
    public <T extends Request> Request[] getAllRequests()
        throws Exception
    {
        List<T> allRequests = (List<T>)_requestMethods.getAllRequests();

        Request[] array = new Request[allRequests.size()];
        allRequests.toArray(array);

        return array;
    }

    @SuppressWarnings("unchecked")
    public <T extends Request> Request[] getRequestsByPriority(int priority)
        throws Exception
    {
        List<T> allRequests =
            (List<T>)_requestMethods.getRequestsByPriority(priority);

        Request[] array = new Request[allRequests.size()];
        allRequests.toArray(array);

        return array;
    }

If you'd like to see the entire wsdl, let me know and I'll send it as
an attachment--I'm not sure
how much info would be needed to debug this and I didn't want to
overwhelm with a bunch
of noise.

-dan


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to