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