cxf动态客户端调用webservice

cxf开发webservice的方式有很多,常见的如下: 

   1、代理方式:JaxWsProxyFactoryBean; 
   2、动态客户端:JaxWsDynamicClientFactory; 

   3、命令自动生成:wsdl2java -p cn.creditease.orgams.test.cxf -d d:\cxf\src -all http://10.106.91.47:8080/jeesxb-web-orgams-api/services/creditWS?wsdl 

先贴一下项目中所用代码。

//客户端调用
public static ResponseBean sendMethod(RequestBean bean) {    
    Map<String, Object> map = new HashMap<String, Object>();    
    String address =bean.getAddress();    
    //address="http://localhost:8080/HMPService/ws/dataServiceProvider?wsdl";    
    if(address==null||address.equals("")){        
        return new ResponseBean();    
    }    
    //动态客户端     
    JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
    //调用服务
    Client client = dcf.createClient(address);    
    //设置超时单位为毫秒    
    HTTPConduit conduit =(HTTPConduit) client.getConduit();    
    HTTPClientPolicy policy = new HTTPClientPolicy();    
    policy.setConnectionTimeout(10000); //连接超时时间 
    policy.setReceiveTimeout(10000);//请求超时时间. 
    conduit.setClient(policy);        
    Gson gson=new Gson();    
    ResponseBean bean2=null;    
    Object[] objects = null;    
    try {        
        LogUtil.info(gson.toJson(bean));//请求参数        
        objects = client.invoke("service",bean.getId(), gson.toJson(bean.getParams()));
        bean2=gson.fromJson(objects[0].toString(), ResponseBean.class);
        LogUtil.info(gson.toJson(bean2));//响应参数    
    } catch (Exception e) {
        bean2=new ResponseBean();
        bean2.setErrorCode("-1");
        bean2.setId(bean.getId());
        bean2.setResult("");
        LogUtil.error(e);
        return bean2;    
    }     
    return bean2;
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值