项目中经常用到开发webservice接口,及调用webService接口。这里讲解如何使用cxf开发webService接口。
一、webservice介绍及理解
webservice是一种跨平台,跨语言的规范,用于不同平台,不同语言开发的应用之间的交互。
比如,平台平台淘宝、京东想获取其他快递公司数据接口,需快递公司开放数据接口。
那么 webservice就是出于以上类似需求而定义出来的规范;无需关心对方什么平台上开发以及使用何种语言开发。
只关心调用对方发布webservice接口的一些对我们获取有用数据的方法。
开发人员一般就是在具体平台开发webservice接口,以及调用webservice接口;每种开发语言都有自己的webservice实现框架。
比如Java 就有 Apache Axis1、Apache Axis2、Codehaus XFire、Apache CXF、Apache Wink、Jboss RESTEasyd等等...
二、cxf
cxf是java开发webService的一种实现框架技术。目前,cxf是主流的webService实现框架。
使用cxf开发需引入cxf开发相关jar包,maven项目中pom.xml配置如下:
备注:这里要额外加入jetty,作为webservice发布的服务器。jetty是一个内嵌的web服务器;
使用JaxWsServerFactoryBean类创建工厂设置暴露地址、接口类、接口实现类,创建即可发布。
三、下面演示其实现过程
发布webService接口,需一个发布服务的url地址,及对应的接口。Jdk自身有实现WebService。
具体实现代码如下:
根据规范,我们先建一个接口类:HelloWorld
再建一个具体的实现类:HelloWorldImpl
最后建一个发布服务的主类:Server
这里的Endpoint是Jdk自身实现的WebService。这里的address,写上自己的本机IP
我们运行下Server类:
运行效果如下:
我们在浏览器里访问:http://192.168.1.102/helloWorld?wsdl
效果:
说明已经成功调用了webservice接口;
这里的wsdl 是 Web Services Description Language的缩写,是一个用来描述Web服务和说明如何与Web服务通信的XML语言。WSDL是Web Service的描述语言,用于描述Web Service的服务,接口绑定等,为用户提供详细的接口说明书。
请求后得到的是一个xml规范文档。是一套规范,任何语言平台技术都可以解析。
CXF来实现webservice接口
我们把Server改下。换成CXF实现:
效果和jdk实现的一样
项目中经常用到开发webservice接口,及调用webService接口。这里讲解如何使用cxf开发webService接口。
一、webservice介绍及理解
webservice是一种跨平台,跨语言的规范,用于不同平台,不同语言开发的应用之间的交互。
比如,平台平台淘宝、京东想获取其他快递公司数据接口,需快递公司开放数据接口。
那么 webservice就是出于以上类似需求而定义出来的规范;无需关心对方什么平台上开发以及使用何种语言开发。
只关心调用对方发布webservice接口的一些对我们获取有用数据的方法。
开发人员一般就是在具体平台开发webservice接口,以及调用webservice接口;每种开发语言都有自己的webservice实现框架。
比如Java 就有 Apache Axis1、Apache Axis2、Codehaus XFire、Apache CXF、Apache Wink、Jboss RESTEasyd等等...
二、cxf
cxf是java开发webService的一种实现框架技术。目前,cxf是主流的webService实现框架。
使用cxf开发需引入cxf开发相关jar包,maven项目中pom.xml配置如下:
备注:这里要额外加入jetty,作为webservice发布的服务器。jetty是一个内嵌的web服务器;
使用JaxWsServerFactoryBean类创建工厂设置暴露地址、接口类、接口实现类,创建即可发布。
三、下面演示其实现过程
发布webService接口,需一个发布服务的url地址,及对应的接口。Jdk自身有实现WebService。
具体实现代码如下:
根据规范,我们先建一个接口类:HelloWorld
再建一个具体的实现类:HelloWorldImpl
最后建一个发布服务的主类:Server
这里的Endpoint是Jdk自身实现的WebService。这里的address,写上自己的本机IP
我们运行下Server类:
运行效果如下:
我们在浏览器里访问:http://192.168.1.102/helloWorld?wsdl
效果:
说明已经成功调用了webservice接口;
这里的wsdl 是 Web Services Description Language的缩写,是一个用来描述Web服务和说明如何与Web服务通信的XML语言。WSDL是Web Service的描述语言,用于描述Web Service的服务,接口绑定等,为用户提供详细的接口说明书。
请求后得到的是一个xml规范文档。是一套规范,任何语言平台技术都可以解析。
CXF来实现webservice接口
我们把Server改下。换成CXF实现:
效果和jdk实现的一样