Hi,

I am using an OperationClient to invoke different web services asynchronously.
I am passing a callback method to the operationclient as following.

MyCallBack Class:

AxisCallback callBack = new AxisCallback(){
            public synchronized void onMessage(MessageContext msgContext){
                SOAPBody msg = msgContext.getEnvelope().getBody();
                
                System.out.println("this is the 
envelope"+msgContext.getEnvelope());
                
                System.out.println("Inside onMessage: "+msg);
                
                
            }

            public void onComplete() {
                // TODO Auto-generated method stub
                System.out.println("Invocation is complete");
                 //System.exit(0);
                
            }

            @Override
            public void onError(Exception e) {
                // TODO Auto-generated method stub
                System.out.println("Inside onError: "+e.getMessage());
            }

            public void onFault(MessageContext msgContext) {
                // TODO Auto-generated method stub
                System.out.println("Inside onFault: 
"+msgContext.getFailureReason().toString());
                msgContext.getFailureReason().printStackTrace();
            }

        };

ServiceClient sc = new ServiceClient();
        
       OperationClient opClient = sc.createClient(
                ServiceClient.ANON_OUT_IN_OP);

MessageContext outMsgCtx = new MessageContext();
        //assigning message context's option object into instance variable
        Options opts = outMsgCtx.getOptions();
        //setting properties into option
        
        opts.setTo(new EndpointReference(
                endPoint));
        opts.setAction(action);

 sc.engageModule("addressing");
opClient.addMessageContext(outMsgCtx);

 opts.setUseSeparateListener(true);

outMsgCtx.setEnvelope(createSOAPEnvelope);//createSOAPEnvelope returns soap 
envelope

 opClient.setCallback(callBack);

opClient.execute(true);

while(true){
Thread.sleep(100);
}


However when I call this client my callback class is not called.
Can one kindly guide me what I am doing wrong here?

Regards,

Sardar Hussain



      

Reply via email to