As mentioned in my previous post, it looks like a bug http://issues.apache.org/jira/browse/AXIS2-3265

There is nothing wrong with the wsdl. I am using resin 3.1.3 as the server. Probably this is something related to the xmlStreamReader implemented by resin? Right now I have no time to verify this. However, it will be awesome if I can know whether it is a true axis2 bug. If it is not, probably I will try to find time to debug resin. Since the old Callback works fine in the same resin server, I would assume that it is an Axi2 1.3 bug, though.

Thanks.

Huitang



Amila Suriarachchi wrote:


On 10/12/07, *Huitang Li* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:


    With further debugging, I found something interesting: when the
    onMessage() method is done in AxisCallback, the application
    proceeds on
    the method  "public void run() " in class
    OutInAxisOperationClient, and
    then somehow the application seems hanging for ever.


I think the problem is here. The correct class to use is AxisCallback. Callback class is a depricated class.
(see the  class comments).
If it work fine when we change to the depricated class that means generated code works fine. on the other hand it is ok to leave onComple method without doing any thing. since it is a method to
use if some one need it.
(It is better to add this method to generated callback class and expose it to user)

Can you send your wsdl or a part to repoduce the problem?

Amila.

    I have not downloaded the axis2 source code to debug, but  I believe
    that something is not right after the AxisCallback finishes
    onMessage()
    and then returns the control to the run() method in
    OutInAxisOperationClient.


    Thanks.



    Rajith Attapattu wrote:
    > Put you notification logic in the
    >
    >  public void onComplete() {
    >                 //nothing here
    >             }
    >
    > So when it completes (either fault/error or sucess) , this
    method will
    > be called.
    >
    > Here is a faily elementry example (not the most elegant)
    > Modify the generated class as follows.
    >
    >  public void onComplete() {
    >                 _complete = true;
    >             }
    >
    > and add a isComplete Method
    >
    > boolean isComplete()
    > {
    >   return _complete;
    > }
    >
    > you can now use it like the old Callback class.
    >
    > while ( !_axisCallBack.isComplete())
    > {
    >    Thread.sleep(1000);
    > }
    >
    > Hope this helps.
    >
    > On 10/12/07, *Huitang Li* < [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    > <mailto:[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>> wrote:
    >
    >     Thanks, Deepal. I will be happy to create a JRIA. But can
    you show
    >     me a
    >     good example using this new API in the client code? I am
    working on a
    >     project, and I cannot wait for the next Axis2 release.
    >
    >     Thanks.
    >
    >     Huitang
    >
    >
    >
    >     Deepal jayasinghe wrote:
    >     > Hi Huitang ,
    >     > Definitely a bug in codegen , please create a JRIA.
    >     >
    >     > Thanks
    >     > Deepal
    >     >
    >     >> All these codes are auto-generated by Axis2 1.3 wsdl2java
    >     command. I
    >     >> do not know whether it is an old callback or not. But it
    does says:
    >     >>
    >     >> _operationClient.setCallback(new
    >     >> org.apache.axis2.client.async.AxisCallback() {
    >     >> // all the codes that I pasted in my previous email.
    >     >> }
    >     >>
    >     >> In the generated code, the onComplete() method looks like
    this:
    >     >>
    >     >> public void onComplete() {
    >     >>                    // Do nothing by default
    >     >>                }
    >     >>
    >     >>
    >     >> Maybe there is something incorrectly generated by wsdl2java?
    >     >>
    >     >>
    >     >>
    >     >>
    >     >> Rajith Attapattu wrote:
    >     >>
    >     >>> What do you mean by the "application is stuck" ? How
    does your
    >     >>> application figure out if a response is received?
    >     >>> Can you please cut paste the code that uses the
    AxisCallback.
    >     >>>
    >     >>> Does the onMessage, onError or onFault methods get called?
    >     >>> If so why do u say it is stuck?
    >     >>>
    >     >>> Looks like the onMessage and onError methods get called,
    bcos
    >     u seem
    >     >>> to have put the old callback there and you mentioned that it
    >     works.
    >     >>>
    >     >>>
    >     >>>                 public void onComplete() {
    >     >>>                     //nothing here
    >     >>>                 }
    >     >>>
    >     >>>
    >     >>> I also see that the onComplete method is empty.
    >     >>>
    >     >>> --
    >     >>> Rajith Attapattu
    >     >>> Red Hat
    >     >>> Blog http://mutlix.blogspot.com/
    >     >>>
    >     >>
> ---------------------------------------------------------------------
    >     >> To unsubscribe, e-mail:
    [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    >     <mailto:[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>
    >     >> For additional commands, e-mail:
    [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
    >     <mailto:[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>
    >     >>
    >     >>
    >     >>
    >     >
    >     >
    >     >
    >
> ---------------------------------------------------------------------
    >     To unsubscribe, e-mail: [EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>
    >     <mailto:[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>
    >     For additional commands, e-mail:
    [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
    >     <mailto:[EMAIL PROTECTED]
    <mailto:[EMAIL PROTECTED]>>
    >
    >
    >
    >
    > --
    > Rajith Attapattu
    > Red Hat
    > Blog http://mutlix.blogspot.com/

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




--
Amila Suriarachchi,
WSO2 Inc.

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

Reply via email to