1.利用cxf进行webservice开发,因此需要去官网下载cxf的jar包。
2.eclispe建立工程,引入jar包。
3.编写对外发布的接口:
4.编写实现类:
5.编写对外发布的类:
6.启动main方法之后,在浏览器地址输入:
http://localhost:9999/cxf_server?WSDL
得到如下图:
7.进入调试,先选择eclipse的launch the web service explorer
8.默认进入UDDI Main的页面
9.选择wsdl,进入wsdl页面
10.输入wsdl地址:http://localhost:9999/cxf_server?WSDL,得到:
11.点进sayHello方法
可以看到有两个之前定义的参数,arg0和arg1,点击add添加参数
12.得到结果:
13.点击source能看到请求和返回的原始内容
14.编写client端测试webservice:
15.soap理解:
soap:简单对象访问协议,是基于XML的简易协议。
一条soap必须包含以下元素:
Envelope:必须。把此XML文档标志位一条soap消息。
Header:可选。包含头部信息。
body:必须。包含所有的调用和响应信息。
Fault:可选。发生错误的信息。
16.利用TCP/IPMonitor监控消息
监控之前,需要先配置TCP/IPMonitor相关的信息。
在Eclipse中window--》preference
输入TCP:
点击add添加:
其中:Local monitoring port为本地服务走入的端口,此处为8888
host name为要监听的服务的地址,此处为:127.0.0.1
port为要监听的服务的端口:9999
type为TCP/IP。
配置完成之后,点击start。
这表示为:在本地开启了一个端口为8888的服务,用于监听地址为127.0.0.1的端口为9999的服务。有点类似代理的意思。那么以后所有的请求都走8888端口,就能抓取所有的请求报文。
17.修改客户端代码:
18.windows--》show view --》other,找打TCP/IP控制台
19、运行客户端,得到报文:
POST /cxf_server HTTP/1.1
Content-Type: text/xml; charset=UTF-8
Accept: */*
SOAPAction: ""
User-Agent: Apache-CXF/3.3.4
Cache-Control: no-cache
Pragma: no-cache
Host: localhost:8888
Connection: keep-alive
Content-Length: 203
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:sayHello xmlns:ns2="http://cxf.zz.com/"><arg0>鐜嬩簲</arg0><arg1>36</arg1></ns2:sayHello></soap:Body></soap:Envelope>
HTTP/1.1 200 OK
Date: Wed, 19 May 2021 12:14:17 GMT
Content-Type: text/xml;charset=utf-8
Content-Length: 213
Server: Jetty(9.4.21.v20190926)
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ns2:sayHelloResponse xmlns:ns2="http://cxf.zz.com/"><return>cxf鐜嬩簲36</return></ns2:sayHelloResponse></soap:Body></soap:Envelope>