使用axis调用wsdl接口
Posted wf2010517141
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用axis调用wsdl接口相关的知识,希望对你有一定的参考价值。
1、需要用到的jar包如下:
axis.jar、axis-ant.jar、commons-discovery-0.2.jar、commons-logging-1.0.4.jar、jaxrpc.jar、log4j-1.2.8.jar、saaj.jar、wsdl4j-1.5.1.jar
2、调用代码举例如下
/** * 查询用户手机信息 * 这个接口是网上免费提供的接口,需要电脑联网才能访问 */ public static void getMobileCodeInfo(){ String endpoint = "http://ws.webxml.com.cn/WebServices/MobileCodeWS.asmx?wsdl"; String nameSpace = "http://WebXml.com.cn/"; String method = "getMobileCodeInfo"; try { //新建服务 Service service = new Service(); //生成客户端 Call call = (Call) service.createCall(); //配置endpoint call.setTargetEndpointAddress(new URL(endpoint)); //配置命名空间和方法 call.setOperationName(new QName(nameSpace,method)); //配置参数名和参数值 call.addParameter(new QName(nameSpace,"mobileCode"), XMLType.XSD_STRING, ParameterMode.IN); call.addParameter(new QName(nameSpace,"userID"), XMLType.XSD_STRING, ParameterMode.IN); Object[] paramValues = new Object[]{"18705187159",""}; //设置返回值类型 call.setReturnType(XMLType.XSD_STRING); //SoapAction的配置,在浏览器url中输入wsdl,在结果中搜索soapAction,如果有值,则需要设置,如果没有值,则设不设都行 call.setUseSOAPAction(true); call.setSOAPActionURI(nameSpace+method); //调用接口 String result = (String) call.invoke(paramValues); System.out.println("result->"+result); //result->18705187159:江苏 南京 江苏移动全球通卡 } catch (Exception e) { System.out.println("接口getMobileCodeInfo调用失败!异常信息如下:"); System.out.println(e.toString()); } }
/** * 查询实体类集合json * 这个接口是我自己在另一个eclipse中构造的接口,需要另一个项目中接口程序启动才能访问 */ public static void listBeanTest(){ String endpoint = "http://localhost:8080/test2?wsdl"; String nameSpace = "http://webservice.ws.glaway.com/"; String method = "listBeanTest"; try { //新建服务 Service service = new Service(); //生成客户端 Call call = (Call) service.createCall(); //配置endpoint call.setTargetEndpointAddress(new URL(endpoint)); //配置命名空间和方法 call.setOperationName(new QName(nameSpace,method)); //配置参数名和参数值 Object[] paramValues = new Object[0]; //设置返回值类型 call.setReturnType(XMLType.XSD_STRING); //SoapAction的配置,在浏览器url中输入wsdl,在结果中搜索soapAction,如果有值,则需要设置,如果没有值,则设不设都行 // call.setUseSOAPAction(true); // call.setSOAPActionURI(nameSpace+method); //调用接口 String result = (String) call.invoke(paramValues); System.out.println("result->"+result); //result->{"code":"success","data":[{"age":25,"name":"1"},{"age":8,"name":"2"}]} } catch (Exception e) { System.out.println("接口listBeanTest调用失败!异常信息如下:"); System.out.println(e.toString()); } }
以上是关于使用axis调用wsdl接口的主要内容,如果未能解决你的问题,请参考以下文章
Axis2生成wsdl客户端代码并实现webservice调用
java程序怎么调用webservice接口,实现发送短信功能