首先当前是从官网下载cxf组件.
- http://cxf.apache.org/download.html
http://cxf.apache.org/download.html
下载后解压,在这里主要是用到解压后的bin目录中的wsdl2java.bat该批处理文件.
可以直接进入bin目下,运行wsdl2java,需要注意的他的几个参数
我测试时直接运行的以下命令:
写道
wsdl2java -p cn.com.css.misps.graph.webservice.impl -d F:\src -all
http://10.12.0.219:8088/MSPGS/MPService?wsdl
wsdl2java -p com.zzzl.webservice.qidian -d d:\cxfoutput\src -all http://game.qidian.com/RemoteWebService/IPreventIndulge.asmx?wsdl
参数说明:
-p 也就是package 对应java中的包
-d 输入目录,生成.java文件会在该目录,会自动添加-p参数配置的包路径
-client 生成客户端测试web service的代码.
-server 生成服务器启动web service的代码.
-impl 生成web service的实现代码.
-ant 生成build.xml文件.
-all 生成上面-client -server -impl -ant 对应的所有文件.
最后这个中个URL对应的就是wsdl文件访问地址了,如果wsdl文件在本地也可以的.
http://game.qidian.com/RemoteWebService/IPreventIndulge.asmx?wsdl
记录下来.以免忘了,生成客户端还是比较简单的.
最后是客户端代用的代码
- //定义命名空间 这些都可以从生成的client测试类中找到
- private staticfinal QName SERVICE_NAME =new QName("http://tempuri.org/","IPreventIndulge");
- public staticvoid main(String[] args) {
- //wsdlURL已绑定在生成的类中
- IPreventIndulge preventIndulge = new IPreventIndulge(IPreventIndulge.WSDL_LOCATION, SERVICE_NAME);
- //对应接口
- IPreventIndulgeSoap port = preventIndulge.getIPreventIndulgeSoap();
- //调用对应方法
- System.out.println(port.getIndulgeInfo("1116094623","0"));
- }
//定义命名空间 这些都可以从生成的client测试类中找到 private static final QName SERVICE_NAME = new QName("http://tempuri.org/", "IPreventIndulge"); public static void main(String[] args) { //wsdlURL已绑定在生成的类中 IPreventIndulge preventIndulge = new IPreventIndulge(IPreventIndulge.WSDL_LOCATION, SERVICE_NAME); //对应接口 IPreventIndulgeSoap port = preventIndulge.getIPreventIndulgeSoap(); //调用对应方法 System.out.println(port.getIndulgeInfo("1116094623", "0")); }