cxf开发webservice的方式有很多,常见的如下:
1、代理方式:JaxWsProxyFactoryBean;
2、动态客户端:JaxWsDynamicClientFactory;
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;
}