CXF
Apache CXF = Celtix + XFire。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对 JAX-WS 全面的支持,并且提供了多种 Binding 、DataBinding、Transport 以及各种 Format 的支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用。
这次小编的需求是,利用CXF生成webservice服务端代码,导出为java文件。
生成 webservice 服务端代码
1. 下载安装CXF
(1)下载apache cxf,如apache-cxf-3.0.16.zip
(2)将CXF解压到某一目录,如D:\instrument\java\apache-cxf-3.0.16
2. 环境变量配置
(1)增加:CXF_HOME=D:\apache-cxf-2.7.10
(2)编辑:在path后面加上 %CXF_HOME%/bin;
(3)测试配置结果:在dos窗口输入“wsdl2java”,配置成功的结果如下:
3. 运行wsdl2java工具,导出java文件
在dos窗口进入CXF安装的bin目录,输入以下命令:
wsdl2java -d D:\eclipse\JavaService -verbose http://localhost/services/UFIDA.U9.ISV.SM.ICommonCreateManageSellFeeSRV.svc?wsdl
注:(1)localhost根据具体情况,也可以写成ip
(2)-d <客户端代码输出路径>
-verbose<服务地址>
如果配置成功,会提示以下信息:
此时,目标导出文件路径(D:\eclipse\JavaService)会生成如下目录:
其他
1. 输入wsdl相关命令,dos窗口提示“文件名、目录名或卷标语法不正确”
原因:(1)CXF环境变量配置错误
(2)JAVA_HOME变量多于一个
2. wsdl2java
(1)wsimport <—–> wsdl2java
JDK:提供了命令 ” wsimport ” ,用于将WebService生成客户端代码
CXF:提供了命令 ” wsdl2java ” ,用于根据WSDL生成客户端代码
(2)wsdl2java用法
-p 指定其wsdl的命名空间,也就是要生成代码的包名:
-d 指定要产生代码所在目录
-client 生成客户端测试web service的代码
-server 生成服务器启动web service的代码
-impl 生成web service的实现代码
-ant 生成build.xml文件
-all 生成所有开始端点代码:types,service proxy,,service interface, server mainline, client mainline, implementation object, and an Ant build.xml file.
其他wsdl2java参数解释见链接。