根据命令行生成cxf客户端:
1. 首先确保自己的wsdl文件可以打开。
2. 下载apache-cxf-2.6.1.gz,可以到 http://cxf.apache.org/download.html 去下载最新的 Apache CXF 包,下载好后解压到某个目录中
3. 按ctrl+R,输入cmd,打开dos窗口。
进入apache-cxf-2.6.1\bin目录下
参数说明:
wsdl2java -p包名 -d生成文件路径 -verbose "wsdl文件路径"
-p 也就是package 对应java中的包
-d 输入目录,生成.java文件会在该目录,会自动添加-p参数配置的包路径
-client 生成客户端测试web service的代码.
-server 生成服务器启动web service的代码.
-impl 生成web service的实现代码.
-ant 生成build.xml文件.
-all 生成上面-client -server -impl -ant 对应的所有文件.
输入上述命令会在 D:work/hrss_client/src下生成文件夹com/fortunes/hrss/cxf/client
然后将文件夹复制到项目中,我生成的目录如下:
编写一个测试类测试客户端:
其中SERVICE、CxfWsdlPort可在生成的客户端代码中查找。
public final static QName SERVICE = new QName("http://cxf.hrss.fortunes.com/", "CxfWsdlService");
public final static QName CxfWsdlPort = new QName("http://cxf.hrss.fortunes.com/", "CxfWsdlPort");
public static void main(String[] args) {
//wsdlURL已绑定在生成的类中
CxfWsdlService preventIndulge = new CxfWsdlService(CxfWsdlService.WSDL_LOCATION, SERVICE);
//对应接口
CxfWsdl cxfs=preventIndulge.getCxfWsdlPort();
//调用对应方法
System.out.println(cxfs.getCurrentEnrollment("10"));
}
注:我的cxf实现类的注解如下:
@WebService(endpointInterface = "com.fortunes.hrss.cxf.CxfWsdl" ,targetNamespace="http://cxf.hrss.fortunes.com/",portName="HTTP_Port")