异步调用WebService

异步调用WebService的代码:

RPCServiceClient serviceClient = new RPCServiceClient();
  Options options = serviceClient.getOptions();
  EndpointReference targetEPR = new EndpointReference("http://127.0.0.1:8888/axis2/services/ansyService");
  
  options.setTo(targetEPR);
  QName opAddEntry = new QName("http://ws.apache.org/axis2","getPrice");
  serviceClient.invokeNonBlocking(opAddEntry, new Object[]{},
    new org.apache.axis2.client.async.AxisCallback(){

     @Override
     public void onComplete() {
      // TODO Auto-generated method stub
      
     }

     @Override
     public void onError(Exception arg0) {
      // TODO Auto-generated method stub
      
     }

     @Override
     public void onFault(MessageContext arg0) {
      // TODO Auto-generated method stub
      
     }

     @Override
     public void onMessage(MessageContext mc) {
      // TODO Auto-generated method stub
      System.out.println(mc.getEnvelope().getFirstElement().getFirstElement().getFirstElement().getText());
     }
   
    }
  );
  
  System.out.println("异步调用");
  System.in.read();

 

如果通过wsdl2java产生的代码异步调用WebService,执行wsdl2java命令会产生AsynServiceCallbackHandler和AsynServiceStub,其中AsynServiceStub负责同步或异步调用WebService,AsynServiceCallbackHandler是抽象类,也是回调类,如果方法返回,则AsynServiceCallbackHandler类的receiveResultgetName方法被调用,代码如下

class MyCallback extends AsynServiceCallbackHandler
{
    @Override
    
public void receiveResultgetName(GetNameResponse result)
    {
        
//  返回结果
        System.out.println(result.get_return());
    }
}
public class StubClient
{
    
public static void main(String[] args) throws Exception  
    {
        AsynServiceStub stub 
= new AsynServiceStub();        
        
//  异步调用WebService
        stub.startgetName(new MyCallback());
        System.out.println(
"异步调用!");
        System.in.read();    
    } 
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值