WebService
定义

个人理解
通过度娘等方式,个人理解为变相的soap协议加xml工单处理,
实践
webservice 常识
一个webservice 接口发布地址往往类似:
qq 在线验证接口:
www.webxml.com.cn/webservices…
其他可测试接口:
email电子邮箱地址接口: www.webxml.com.cn/WebServices…
全国天气情况接口:
www.webxml.com.cn/WebServices…
qq在线接口验证接口为例
在接口后面加:/wsdl www.webxml.com.cn/webservices…
访问查看然后找到下图中定义的内容:注意使用关联key找到对应的必要使用的参数。

maven 使用 axis
应用依赖(不可缺失必须)
org.apache.axis
axis
1.4
wsdl4j
wsdl4j
1.6.2
javax.xml
jaxrpc-api
1.1
commons-discovery
commons-discovery
0.2
代码(粘贴可用)
@Test
public void testWebService() {
try {
//wsdl地址
String endpoint = "http://www.webxml.com.cn/webservices/qqOnlineWebService.asmx";
//命名空间
String namespace = "http://WebXml.com.cn/";
//服务名
String serviceName = "qqOnlineWebService";
//方法名
String methodName = "qqCheckOnline";
//soapAction
String soapAction = "http://WebXml.com.cn/qqCheckOnline";
Service service = new Service();
Call call = (Call) service.createCall();
//设置响应超时
call.setTimeout(3000);
//设置地址
call.setTargetEndpointAddress(new java.net.URL(endpoint));
//设置方法名
call.setOperationName(new QName(namespace, methodName));
//设置参数
call.addParameter(new QName(namespace, "qqCode")
, org.apache.axis.encoding.XMLType.XSD_STRING, javax.xml.rpc.ParameterMode.IN);
//设置返回类型
call.setReturnType(XMLType.XSD_SCHEMA);
//启用soap
call.setUseSOAPAction(true);
//设置soapAction
call.setSOAPActionURI(soapAction);
//设置服务名
SOAPService soapService = new SOAPService();
soapService.setName(serviceName);
call.setSOAPService(soapService);
Schema result = (Schema) call.invoke(new Object[]{"xxxxx"});
for (int i = 0; i < result.get_any().length; i++) {
System.out.println(result.get_any()[i]);
}
} catch (Exception e) {
log.error("ddd", e);
}
}对于以上代码,我这边吐槽一下,网上其实很多这个的例子但是实际调用的时候会出问题,注意点:
设置参数

获取结果

xxxx需要填写真实的QQ号码










