WebService是一种跨编程语言和跨操作系统平台的远程调用技术,它最基本的目的就是提供在各个不同平台的不同应用系统之间的协同工作能力。它以 HTTP 协议为基础,通过 XML 进行客户端和服务器端通信的框架 / 组件,把你本地的功能开放出去供别人调用。从深层次看,WebService是建立可互操作的分布式应用程序的新平台,是一个平台,是一套标准。它定义了应用程序如何在Web上实现互操作性。实现这种互操作性,webservice平台必须提供一套标准的类型系统,用于沟通不同平台、编程语言和组件模型中的不同类型系统,最后通过远程调用协议(RPC)来对这个webservice进行调用。WSDL,SOAP,UDDI是webservice的三大技术
基本原理
1.服务器端(Provider)提供服务 , 首先注册到注册中心 Registry
2.客户端(Requester)到注册中心(Registry) 查信息 , 找到需要的 Provider 及其提供的 Service
3.Requester 使用 Provider 提供的服务
开发方式
开发webservice有Axis2,Apache CXF,jdk,xfire等,这里介绍一下jdk和CXF这两种方式。
1.jdk开发webservice
1)编写java类,这里以接口和实现类来完成
接口
@WebService
publicinterface HelloWS {
@WebMethod
publicString sayHello(String name);
}
实现类
@WebService
publicclass HelloWSImpl implements HelloWS {
publicString sayHello(String name) {
System.out.println("serversayHello()" + name);
return"Hello " + name;
}
}
2)发布webservice
publicclass ServerTest {
publicstatic void main(String[] args) {
Stringaddress="http://192.168.24.141:8888/day_01/hellows";
Endpoint.publish(address,new HelloWSImpl());
System.out.println("发布webservice成功");
}
}
3)调用webservice
浏览器中,输入上面的address?wsdl即可访问。可以通过jdk对wsdl文档命令:wsimport-keep 地址来构建webservice客户端进行调用
2.CXF开发webservice
CXF开发webservice也是比较方便和简单的,它和spring的集成可以说是非常地好。
1)在eclipse中新建web工程,导入依赖包。
http://cxf.apache.org/ 下载cxf的jar包,将其lib中jar拷贝到工程lib下
2)开发代码同jdk方式一样,只是将其同spring整合不一致。同时构建客户端的命令为wsdl2java wsdl文档地址
3)运行查看方式同上,浏览器输入地址即可查看
cxf与spring的整合,将在下篇介绍