axis全称Apache EXtensible Interaction System.版本很多,axis1.x版本最终版是 1.4,之后就到了axis2.x;由于2.x 版本与 1.x版本使用起来的差异比较大(当然2.x版本相对来说会高效很多)。
这里以访问QQ号码状态为例,webservice地址:http://webservice.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl,在浏览器中访问可看到相关的请求头信息、函数名称、参数等。
java项目中需要用到的Jar包(放在lib目录下):
需要引用的类: import javax.xml.namespace.QName; import javax.xml.rpc.ServiceException; import org.apache.axis.client.Call; import org.apache.axis.client.Service;
最后是调用代码:
1 try { 2 3 String endpoint = "http://webservice.webxml.com.cn/webservices/qqOnlineWebService.asmx?wsdl"; 4 5 //创建一个服务(service)调用(call) 6 Service service = new Service(); 7 Call call = (Call) service.createCall(); 8 9 //设置service所在的url 10 call.setTargetEndpointAddress(new java.net.URL(endpoint)); 11 12 //接口函数13 call.setOperationName(new QName("http://WebXml.com.cn/","qqCheckOnline")); 14 call.setSOAPActionURI("http://WebXml.com.cn/qqCheckOnline");15 16 //接口的参数17 call.addParameter(new QName("http://WebXml.com.cn/","qqCode"), org.apache.axis.encoding.XMLType.XSD_STRING,javax.xml.rpc.ParameterMode.IN);18 19 //设置返回类型20 call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING); 21 22 String ret = (String)call.invoke(new Object[]{"997717740"}); 23 24 System.out.PRintln("状态:"+ret);25 26 }27 28 catch(Exception e) {29 BeanCtx.p(e.toString());30 }
新闻热点
疑难解答