一、使用CXF开发客户端
- 创建一个Java 项目,我创建的是CXFClient
- 下面先介绍一下,CXF中wsdl2java命令环境配置以及wsdl2java工具的使用
用我自己电脑做一个实例,
一、环境配置
??????? 新建CXF_HOME ? ?? D:ProgramFilesapache-cxf-2.7.10
??????? 在CLASSPATH????????? %CXF_HOME%lib
??????? 在PATH中添加?????????? %CXF_HOME%bin
?
??????? 验证:
?????? ? ? ? ?? 操作 ? win+R??? ---> cmd? --->? 回车 ? ---》 wsdl2java -v?
??????????????? 结果 显示? wsdl2java - Apache CXF 2.7.2?
??????????????? 证明配置成功
?
二、wsdl2java工具使用??
操作 ? win+R??? ---> cmd? --->? 回车 ? ---》 wsdl2java? -frontend jaxws21 -p? com.jiuzi.HelloCXF -d D:? -client -autoNameResolution? http://localhost:8080/webservice/HelloCXF?wsdl
?
-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.
参考质料:http://cxf.apache.org/docs/wsdl-to-java.html
?
?
- 使用CXF生成客户端
我使用的简洁 的命令,没有带任何参数。在cmd中切换到该项目的src源码目录下,输入
wsdl2java http://127.0.0.1:8080/CXFWebservice/ws/readerService2?wsdl,如下图:
?回车,自动客户端生成,刷新myeclipse导入代码,
?
3.编写客户端
package com.xlk.cxf.client.clientmain; import com.xlk.cxf.service.IReaderService; import com.xlk.cxf.service.Reader; import com.xlk.cxf.service.impl.ReaderService; /** * * reader的客户端调用 </br> * 类名: ReaderClient </br> * 日期: 2014-2-19 上午10:46:13 </br> * @author 许立亢 * @version 1.0 */ public class ReaderClient { public static void main(String[] args) { ReaderService readerService = new ReaderService(); // 此处返回的只是远程WebService的代理 IReaderService iReaderService = readerService.getReaderServicePort(); Reader reader = iReaderService.getReader("123","许立亢"); System.out.println(reader.getName()); } }
?该代码是对,之前的服务端的获得实体类接口的调用:public Reader getReader(@WebParam(name="name") String name,@WebParam(name="password") String password);
?执行main函数,控制台显示,
?说明调用成功。这就是一个完整的 CXF客户端对服务端 使用webservice接口的调用
?
?
?
?
项目的结构部署