Your *ServiceStub.java is auto generated and should not be modified.
What you need to do is implement your *Callback.java and _not_ mess
around with CallbackReceiver - much in the same way as you implemented
your *Skeleton.java - the difference being that the *Callback.java is
client side and used for asyc operations. Then use this *Callback.java
as you would the Callback.java class shown in the user guide. Its been
a few months since I did this, but last I checked it does work.

HTH,
Robert
http://www.braziloutsource.com/


On 7/26/06, Marta García Rueda <[EMAIL PROTECTED]> wrote:
Hi,

The source code in my *ServiceStub.java is:

org.apache.axis2.context.MessageContext _messageContext = new
org.apache.axis2.context.MessageContext();
_messageContext.setEnvelope(env);

_operationClient.addMessageContext(_messageContext);


Callback callbackClient= new Callback() {...};
_operationClient.setCallback(callbackClient);

_operationClient.getOptions().setUseSeparateListener(true);
_operationClient.getOptions().setTransportInProtocol(Constants.TRANSPORT_HTT
P);

CallbackReceiver _callbackReceiver= null;

if (_operations[0].getMessageReceiver() == null &&
_operationClient.getOptions().isUseSeparateListener()) {
        _callbackReceiver = new CallbackReceiver();
_operations[0].setMessageReceiver(_callbackReceiver);
}

_operationClient.execute(false);
_operations[0].getMessageReceiver().receive(_messageContext);

I don´t know how to obtain the result, I do
_operations[0].getMessageReceiver().receive(_messageContext) but it isn´t
right because _messageContext contain the message that I use to call the web
service not the response, but I don´t know where to find the messageContext
with the response. Can you help me? And that is why I haven´t a relatesTo
value.


-----Mensaje original-----
De: Eran Chinthaka [mailto:[EMAIL PROTECTED]
Enviado el: sábado, 22 de julio de 2006 16:28
Para: [email protected]
Asunto: Re: [Axis2] Non-blocking dual client

Hi Marta,

If there is an NPE, I will fix it.

But I'm sorry I'm missing something here. You *must* have a relatesTo
value, when you do a dual channel, non-blocking invocation. So what do
you mean by saying "in my case relatesTO is null"?


-- Chinthaka


Marta García Rueda wrote:
> I´m very sorry, I don´t explain my problem well.
> You are right, I´m trying to do a dual channel non-blocking client and the
> CodeGen generates my CallbackHandler, I´m using ADB also.
>
> The problem it´s that when I´m trying to obtain the result for:
> callbackReceiver.receive(messageContext) I have an exception.
>
> java.lang.NullPointerException at
> org.apache.axis2.util.CallbackReceiver.receive(CallbackReceiver.java:32)
>
> I have seen that the method receive in
> org.apache.axis2.util.CallbackReceiver makes
> RelatesTo relatesTO = messageCtx.getOptions().getRelatesTo();
> String messageID = relatesTO.getValue();
>
> And in my case relatesTO is null so messageID throws an exception and I
> can´t obtain the result. So, callback in never onComplete and the
> CallbackHandler is never call.
>
> My client works fine but I don´t know how to obtain the webservice
response.
>
>
> Thank you very much.
>
> Marta García.
>
> -----Mensaje original-----
> De: robert lazarski [mailto:[EMAIL PROTECTED]
> Enviado el: miércoles, 19 de julio de 2006 20:32
> Para: [email protected]
> Asunto: Re: [Axis2] Non-blocking dual client
>
> You're trying to do dual channel non-blocking, right?  Several things
> here don't make sense to me here. Perhaps with some more info maybe we
> can help:
>
> 1) You say you are using codegen with a hashMap - but there is no wsdl
> type for java.util.HashMap .
>
> 2) CodeGen generates its own *CallbackHandler.java , right? The code
> you are showing looks like its from the code gen stub. What you really
> need to do, IMHO, is implement your
> *CallbackHandler.java methods and invoke your Stub.start* (at least
> using xmlbeans, probably the samething for ADB) methods that receive
> the argument of *CallbackHandler .
>
> HTH,
> Robert
> http://www.braziloutsource.com/
>
> On 7/19/06, Marta García Rueda <[EMAIL PROTECTED]> wrote:
>>
>>
>>
>> Hi,
>>
>> I´m doing an asynchronous client for a web services with the Code
> Generator
>> Tool and my stub class it´s like that:
>>
>>
>>
>> _operationClient.getOptions().setUseSeparateListener(true);
>>
>>
>
_operationClient.getOptions().setTransportInProtocol(org.apache.axis2.Consta
> nts.TRANSPORT_HTTP);
>> org.apache.axis2.util.CallbackReceiver _callbackReceiver =
>> null;
>>
>> if (_operations[0].getMessageReceiver() == null &&
>> _operationClient.getOptions().isUseSeparateListener()) {
>>
>> _callbackReceiver = new
>> org.apache.axis2.util.CallbackReceiver();
>>
>>
>> _operations[0].setMessageReceiver(_callbackReceiver);
>>
>> }
>>
>> _operationClient.execute(false);
>>
>>
>>
>> When I debug this I see that the object callbackReceiver has the result
in
> a
>> hashMap callbackStore. But I don´t know how to retrieve the result. I
have
>> to implement a Listener o something like that? Could you tell me where
can
> I
>> find an example?
>>
>>
>>
>> Thank you very much.
>>
>> Marta García.
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>




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



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

Reply via email to