客户端利用CXF中的JaxWsProxyFactoryBean 对webservice地址进行调用

来源:互联网 发布:基因大数据公司 编辑:程序博客网 时间:2024/05/17 17:42

其实调用代码关键就简单几行

一个实现类,一个引用接口、接口主要指定需要调用的webservice地址中的方法、参数、返回类型的配置

public Object webserviceRequest(String bidCode){try {JaxWsProxyFactoryBean factoryBean = new JaxWsProxyFactoryBean();factoryBean.setAddress("http://***********webservice地址**********-service?wsdl");factoryBean.setServiceClass(IGTPExtractResultService.class);//通过接口指定请求方法名称/返回类型/参数IGTPExtractResultService ex =(IGTPExtractResultService)factoryBean.create();configTimeout(ex);//超时设置Object object = ex.GetExpertInfoList(bidCode);//请求完毕后、类型接收return object;} catch (Exception e) {e.printStackTrace();}return null;}


 

/** * 客户端调用请求时超时设置 * @param service */public static void configTimeout(Object service) {Client proxy = ClientProxy.getClient(service);HTTPConduit conduit = (HTTPConduit) proxy.getConduit();HTTPClientPolicy policy = new HTTPClientPolicy();policy.setConnectionTimeout(8*1000);//8S 请求时间policy.setReceiveTimeout(10*1000);//10S 连接时间conduit.setClient(policy);}


接口代码

@WebService(name ="WebserviceTestService", targetNamespace = "http://service.projectregister.procurement/")public interface IGTPExtractResultService {@WebResult(name = "return", targetNamespace = "http://service.projectregister.procurement/")@WebMethod(operationName = "GetExpertInfoList")//指定调用webservice地址的方法名称public Object GetExpertInfoList(String bidCode);//参数}

 

上述代码中的方法名称可以填写已知类型、我这里仅为了调试,暂时修改为Obeject类型了。

0 0
原创粉丝点击