Hi,

I found my solution. This is wrong:

<wsdl:operation name="login">
                <soap:operation/>
                <wsdl:input></wsdl:input>
                <wsdl:output></wsdl:output>
        </wsdl:operation>

This is right:

<wsdl:operation name="login">
                <soap:operation soapAction="login"/>
                <wsdl:input></wsdl:input>
                <wsdl:output></wsdl:output>
        </wsdl:operation>

I spent the last two days on this, but now my question is: Where does the
MessageContext come from on the service side? It isn't part of the SOAP
message that is sent from the client, is it? Does the service derive it from
the wsdl or something?

Regards,
Ken

-----Original Message-----
From: Ken Campbell [mailto:[EMAIL PROTECTED] 
Sent: 07 April 2006 09:43
To: [email protected]
Subject: [Axis2]0.95 MessageReceiver (plain text !!)

Hi,

I'm sure that when I send a LoginRequest to my service, the MessageContext
which is sent contains a LoginRequest. At OutInAxisOperation line 267 :
 
MessageContext response = send(mc);

mc is the correct MessageContext where the operation name is "login".
However, I'm also sure that in my MessageReceiver at invokeBusinessLogic :

org.apache.axis2.description.AxisOperation op =
msgContext.getOperationContext().getAxisOperation();

the operation name has turned into "formatAddress" even though the actual
received message is still a LoginRequest. Hence the data binding error.
Can anyone tell me what might cause this mismatch? I was wondering if there
might be a problem here in the wsdl:

<wsdl:binding name="PAFBinding" type="tns:PAF">
        <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>

        <wsdl:operation name="login">
                <soap:operation/>
                <wsdl:input></wsdl:input>
                <wsdl:output></wsdl:output>
        </wsdl:operation>
....

or here in the services.xml

<serviceGroup>
   <service name="PAF">
      <messageReceivers>
         <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out";
class="edp.ws.paf.generated.PAFMessageReceiverInOut"/>
      </messageReceivers>
      <parameter name="ServiceClass"
locked="false">edp.ws.paf.generated.PAFSkeleton</parameter>
      
      <operation name="login" mep="http://www.w3.org/2004/08/wsdl/in-out";>
         <actionMapping/>
         <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"/>
      </operation>
....

but I still don't understand why the problem does not occur when I send a
LoginRequest from .NET.

Regards,
Ken

Reply via email to