项目原因,要对接其他公司的数据,对方提供了wsdl,本以为可以直接获取客户端代码,结果失败了。直接上我试了多种方法后成功的一次代码。其他方法也是对的,尝试中可能设置错误,导致一直失败。
try { //访问的URL,网上有人说是WSDL地址,我采用的是服务URL wsdl访问页面的 wsdlsoap:address 的地址 //<wsdlsoap:address location="http://****:**/service/Service"/> String endpoint = "http://****:**/service/Service"; Service service = new Service(); Call call = (Call) service.createCall(); call.setTargetEndpointAddress(endpoint); //接口的参数名 String parametersName = "input"; call.addParameter(parametersName, XMLType.XSD_STRING, ParameterMode.IN); //下面地址为 wsdl访问页面的头部 <wsdl:definitions targetNamespace="http://***.**.**.com" 后面的QueryService是方法名 call.setOperationName(new QName("http://***.**.**.com","QueryService")); call.setReturnType(XMLType.XSD_STRING); call.setEncodingStyle("GB2312"); // 远程调用 String result = (String) call.invoke(new Object[] { GetXml.getXml() }); System.out.println("-----------\n\n\n" + result+"\n\n\n"); } catch (Exception e) { System.err.println(e.toString()); }