webservice学习笔记(六):使用CXF开发web service的服务端和客户端以及WebService请求深入分析

1.使用CXF开发web service

-加入cxf的jar包即可,其他不需要改动

a.创建一个java项目,把之前的jdk开发webservice服务端的代码复制进去,把cxf的jar复制到lib下面并build path,

注意cxf的lib下有一个不是jar包,不要选中

b.修改端口号并运行

c.运行jdk的websevice服务端

d.查看两者的wsdl文档

-首先查看8989,也就是我们的jdk的webservice服务端,它的schema约束是从外部引入的:

而我们的8888端口,cxf的webservice服务端wsdl文档,它的schema约束文件是内置的:

2.分析WebService的WSDL文档结构

大致可分为六个部分:

(1).<definitions>

(2).<types>

(3).<message>

(4).<portType>

(5).<binding>

(6).<service>

详细结构如下:

文档结构:

<definitions>

              <types>

                            <schema>:引用了自己定义的一个约束

                                          <element>

              </types>

              <message>:定义了请求响应消息的结构

                            <part>

              </message>

              <portType>:端口类型

                            <operation>

                                          <input>

                                          <output>

              </portType>

              <binding>:

                            <operation>

                                          <input>

                                          <output>

              </binding>

              <service>

              

              </service>

</definitions>

3.使用cxf的wsdl2java去生成客户端代码

a.把cxf的bin目录加入到环境变量path中

b.以管理员身份运行cmd窗口,进入客户端项目src目录输入,wsdl2java命令加上你的服务端url(后缀加上?wsdl),或者你的本地wsdl文档位置即可生成客户端代码,控制台可能会报错,原因是有多余的包

c.编写cxf测试类,由wsdl文件的service标签得知,我们可以实例化name为HelloWsImplService的工厂类,只要通过

getHelloWsPort()即可获取其的方法,sayHello(String name)

d.下面我们使用eclipse内置web services explorer打开wsdl page查看我们的请求报文和响应报文

e.首先分析我们的8888端口号cxf的wsdl文档,根据其语法可以写如下标签:

f.sayHello标签用于请求,sayHelloResponse用于响应

g.message标签解析:

h.portType标签解析:

i:binding标签解析:

j:service标签解析:

猜你喜欢

转载自blog.csdn.net/weixin_40740613/article/details/83443459