web服务介绍
web服务是一种新技术,它允许在不同计算机上运行的不同APP应用程序相互交换和集成数据,而无需添加专用的第三方软件和硬件。 根据web服务规范实现的APP应用程序之间可以相互交换数据,而不管使用的是语言、平台还是内部协议。 Web Service是一个自描述的、自包含的可用网络模块,可以执行特定的业务功能。 web服务基于常见的行业标准和现有技术(如XML和HTTP ),因此很容易部署。 web服务降低了APP应用程序接口的成本。 web服务为整个企业或多个组织之间的业务流程集成提供了通用机制。
Web service是一个平台独立、松散耦合的独立、可编程的基于web的APP应用程序,可以使用开放的XML标准来编写、发布、发现、协调和配置分布式互操作性APP应用程序。
web上广泛使用的技术:
TCP/IP :通用网络通信协议,用于各种设备
html :可以使用html标签显示数据的通用用户界面
Java :由于Java具有跨平台特性,所以要写一次在任何系统上运行的通用编程语言
XML )通用数据表示语言,web上传输结构化数据的简便方法
其特点是开放性、跨平台性,开放性正是web服务的基础。
web服务技术框架APP应用:
1,axis框架
客户端调用代码:
publicstringinvokewebservice (stringsoapheadername,String endpointURL,
字符串名称空间URL,字符串方法名称,
Map soapHeaderParams,String[] paramsName,
Object[] paramsValue,QName returnType ) {
服务服务=new服务(
呼叫呼叫=null;
try {
呼叫=(呼叫)服务. create call );
call.settargetendpointaddress (new Java.net.URL ) endpointURL );
call.setusesoapaction(true;
call.setsoapactionuri (namespaceurlmethodname;
call.setoperationname(newqname ) namespaceURL,methodName );
} catch (serviceexceptionserviceexception ) {
服务执行. print stack trace (;
} catch (malformedurlexceptionurlexception )
URL exception.print堆栈跟踪(;
}
//创建请求消息soap标头
if (! ' '.equals(soapheadername ) ) }
soapheaderelementsoapheaderelement=newsoapheaderelement (
namespaceURL,soap头部名称;
soap header element.set namespace uri (namespace URL;
if(soapheaderparams==null )
返回' ';
} else {
setkeys=soap header params.keyset (;
Iterator key=keys.iterator (;
while(key.Hasnext () ) ) )。
String mapKey=key.next (;
try {
oapheaderelement.addchild element (mapkey ).setValue (
string.value of (soap header params.get ) mapkey );
}catch(soapexceptione ) {
e .打印堆栈跟踪(;
}
}
call.add header (soap header element;
}
}
//创建请求正文参数
参数名称!=null paramsName.length 0) {
for(intI=0; i paramsName.length; I ) {
call.addparameter(newqname ) namespaceURL,paramsName[i] )、
XMLType.XSD_STRING,ParameterMode.IN;
}
}
//设置调用返回类型
call.setreturntype(returntype );
try {
return (字符串) call.invoke ) Paramsvalue;
}catch(remoteexceptione ) {
e .打印堆栈跟踪(;
返回' ';
}
}
main函数调用测试:
publicstaticvoidmain (string args [ ] ) {
Map soapHeaderParams=new HashMap (;
soapheaderparams.put('username ',' test ' );
soapheaderparams.put('password ',' test ' );
axisserverclientaxisclient=newaxisserverclient (;
Map RequestMap=new HashMap (;
requestmap.put('type ','0' );
stringrequestxml=axis client.getrequest XML (请求图);
system.out.println (请求XML;
stringresponsedoc=axis client.invoke web服务(' rip soap header ',
' http://192.168.0.7:8081/rip web服务. asmx ',
' http://rip.org/',' GetBookDateList ',soapHeaderParams,
new String[] { 'RequestXml' },new Object[] {requestXML},
XMLType.XSD_STRING;
system.out.println(responsedoc;
}