1、 从网上下载cxf开发的工具 apache-cxf-3.1.4.zip,
解压文件,找到apache-cxf-3.1.4\bin目录,里面包含一个wsdl2java文件
2. 设置环境变量
1、CXF_HOME=F\CXF\apache-cxf-3.1.4.
2、在path后面加上 %CXF_HOME%/bin;
3.再classpath后面加上%CXF_HOME%/lib;
在cmd命令中输入wsdl2java,如果有提示usage,就表明配置成功
3.利用dos命令,生成客户端代码
wsdl2java相关命令:
wsdl2java -p com -d D:\\src -all xx.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.
生成代码命令为:(根据获取的wsdl文件生成)
wsdl2java -autoNameResolution -frontend jaxws21 -impl -exsh true -p com.bocom.webservice.client -d G:\shengcheng G:\shengcheng\weather.wsdl
其中-p后面是指定生成代码的报名,-d后是生成代码的磁盘位置及wsdl文件存放的位置
生成代码时,jdk版本为jdk1.8.0_131,开始使用的CXF版本是apache-cxf-2.7.6 报“ 由于 accessExternalSchema 属性设置的限制而不允许 ‘file‘ 访问, 因此无法读取方案文档 ‘xjc.xsd‘
”,错误,百度了下解决方案,说是在jdk目录下的jre\lib下添加一个属性文件jaxp.properties,并写上如下内容javax.xml.accessExternalSchema = all,我试了下问题并没有得到解决,后来更换了apache-cxf-3.1.4版本则生成成功。另外注意java使用cxf调用webservice最少jar包,避免jar包之间的冲突问题。