其实调用代码关键就简单几行
一个实现类,一个引用接口、接口主要指定需要调用的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类型了。