第一步:引入所需要的jar包
1.引入cxf所需要的jar包
第二步:cxf解析wsdl
1.准备工作
2.使用命令行解析wsdl到本地
3.调用wsdl的方法
4.配置bean.xml实现对HelloWorld接口的自动装载
第一步:
1.引入cxf所需要的jar包
下载apache-cxf-2.4.0包或apache-cxf其他版本(我这里下载的是3.0.0版本,
由于lib中缺少一些需要的jar包,所以又下了CXF2.4.0_lib补充),解压缩。
解压后在环境变量path中配置cxf环境变量
将所需11个jar包导入项目(PS:因为apache-cxf-3.0.0中的cxf-3.0.0缺少cxf.xml、
cxf-extension-soap.xml、cxf-servlet.xml三个xml文件,所以我这里导
入的是CXF2.4.0_lib中的cxf-2.4.0)。
第二步:cxf解析wsdl
1.准备工作
比如服务器端新建了一个HelloWorld接口,接口包含三个方法(如下图),方法使用了封装的User
和Cat实体类,HelloWorldWS实现了接口的三个方法(如下图),服务器将HelloWorld接口以wsdl
(http://localhost:8088/HelloWorld?Wsdl)格式发布(如下图)。打开浏览器,输入地址:
http://localhost:8088/HelloWorld?Wsdl,则可出现以下信息。
服务器端代码如下:
服务器以wsdl形式发布HelloWorld接口
2.使用命令行解析wsdl到本地
准备工作做完,打开cmd命令窗口,跳转到希望存放解析文件的某项目路径,输入
wsdl2java http://localhost:8888/Service/ServiceHello?wsdl 回车,解析成功
之后会发现该项目src包下已经有了解析的方法和类文件。
3.调用wsdl的方法
在解析的文件中找到继承Service的类如下图,new一个该类的对象。该类有一个
getXXXXPort()的方法,XXXX为类名,调用该方法即得到一个HelloWorld接口对象,
我们就可以愉快的使用HelloWorld的三个方法了。(PS:由于服务器和客户端编码
未统一,所以出现了乱码问题,这里要注意编码一致)
4.配置bean.xml实现对HelloWorld接口的自动装载
a.在beans.xml文件头配置cxf包信息,使系统能够找到cxf相应jar包和方法。
b.Import(导入)三个cxf的xml文件,并配置jaxws:client标签
c.Id的值是自动装载的HelloWorld类型变量名,serviceClass是解析出来的Helloworld.java
文件所在路径,address是服务器提供的wsdl
d.这样就可以直接使用HelloWorld接口了
e.注意,HelloWorld接口的方法如果有返回值类型,比如上图的StringCat类型,我们
不需要定义,解析wsdl时会自动解析用到的相关javabean类型,我们可以直接拿来用它的方法。