-
jax-ws
第一步:服务端开发
-
1.编写sei(Service Endpoint Interface),sei在webservice中成为port,在java中成为接口,接口类型叫portType。
代码如下:
-
2.编写sei实现类,此类作为webservice提供的实现类
注意:sei实现类中至少要有一个非静态的公共方法,
需要作为webservice服务方法。
服务启动,通过访问地址看到,如下,
当我们在url后添加?wsdl,如http://127.0.0.1:12345/weather?wsdl
,
回车时,看到了一个标准的xml文档,此时说明webservice已经正常发布了。
接下来就是如何调用?
-
第二步:使用Wsimport工具生成客户端调用类:
生成的对象:
之后写webservice客户端:
客户端代码编写:
webservice采用标准soap(Simple Object Access Protocol)简单对象访问协议来传输,soap属于w3c标准,基于http传输xml,即soap=http+xml。
采用wsdl作为描述语言,是描述接口的,即webservice使用说明书,wsdl属于w3c标准。
-
导读:
-
wsdl的阅读及使用方法
soap协议结构
CXF+spring整合开发方法
wsdl
指网络服务描述语言(Web Services Description Language).
wsdl是一种使用xml编写的文档。这种文档可描述某个Web service。可以规定服务的位置
,以及此服务提供的操作或者方法。
结构:
<service> 整个webservice的服务视图,它包括了所有的服务端点
<binding> 为每个端口定义消息格式和协议细节
<portType> 描述webservice可被执行的操作,以及相关的消息,通过binding指向portType
<message> 定义一个操作(方法)的数据参数(可有多个参数)
<types>
使用Wsimport工具生成客户端调用代码:
以http://fy.webxml.com.cn/webservices/EnglishChinese.asmx?wsdl
为例来介绍Wsimport工具如何使用,指定目录到:F:\我的项目\src
:
Wsimport (-extension) -s . http://fy.webxml.com.cn/webservices/EnglishChinese.asmx?wsdl
生成的文件结构如下:
使用:
//创建服务视图
//通过服务视图得到服务端点
//通过服务端点调用服务方法
Soap
是一种简单对象访问协议(SimpleObjectAccessProtocol),=Http+xml,其实就是通过http发xml数据
使用IDE中的TCP/IP Monitor,可以看到请求响应的相关内容:
此时,需修改客户端为:
使用 TCP/IP Monitor监控:
可以看到请求和响应的内容:
响应:
我们发现:
soap1.2请求:
CXF—webservice企业开发: