java访问web service

来源:互联网 发布:c语言线程 编辑:程序博客网 时间:2024/05/21 10:08
web service规范为我们规定了一套访问格式,可以通过开放的接口使用任何语言访问异构
平台上的软件。充分实现了任意平台任意语言的访问。促进电子商务的发展。
本文简单的介绍了如何访问web service。
使用平台 :Eclipse,需要软件 axis。
首先下载apache axis1.4版本的开发库。
使用axis的WDSL2Java工具生成java的stub文件。
然后用eclipse创建一个项目,导入所需要的包,就可以访问开发的Web服务了。
下面给出一个检查QQ状态的web服务访问的代码。
/**
* QQ状态验证
*
* @param qqCode
* @return
*/
public void checkQQstatus(String qqCode) {
Service service = new Service();
try {
_call = (Call) service.createCall();
} catch (ServiceException e1) {
e1.printStackTrace();
}
String EndPoint = "http://www.webxml.com.cn/webservices/qqOnlineWebService.a
smx";
String OperationName = "qqCheckOnline";
String SoapActionURI = "http://WebXml.com.cn/qqCheckOnline;
if (_call != null) {
_call.setTargetEndpointAddress(EndPoint);
// addParamater的格式尽量不要用(String)否则会出现"服务器无法处理请求。 --->

// 未将对象引用设置到对象的实例。"
_call.addParameter(new QName(
"http://WebXml.com.cn/, "qqCode"),
new QName(
"http://www.w3.org/2001/XMLSchema, "string"),
javax.xml.rpc.ParameterMode.IN);
// setOperationName 不要用call.setOperationName(new
// QName("urn:BasicServicesSoap","GetDeviceList"));格式
// 否则会出现"服务器无法处理请求。 ---> 未将对象引用设置到对象的实例。"
_call.setOperationName(new QName(
"http://WebXml.com.cn/, OperationName));
_call.setUseSOAPAction(true);
_call.setSOAPActionURI(SoapActionURI);
_call.setReturnClass(java.lang.String.class);
java.lang.Object _resp = null;
try {
_resp = _call.invoke(new java.lang.Object[] { qqCode });
} catch (RemoteException e) {
e.printStackTrace();
}
char c=_resp.toString().toUpperCase().charAt(0);
String status="在线";
switch (c){
case 'Y':break;
case 'N':status="离线";break;
case 'E':status="QQ号码错误";break;
case 'A':status="商业用户验证失败";break;
case 'V':status="免费用户超过数量";break;
}
System.out.println(qqCode+":"+status);

} else {

}
}

原创粉丝点击