一、使用CXF开发客户端
- 创建一个Java 项目,我创建的是CXFClient
- 下面先介绍一下,CXF中wsdl2java命令环境配置以及wsdl2java工具的使用
用我自己电脑做一个实例,
一、环境配置
新建CXF_HOME D:\ProgramFiles\apache-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,如下图:
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的客户端调用
* 类名: ReaderClient
* 日期: 2014-2-19 上午10:46:13
* @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接口的调用
项目的结构部署