cxf webservice生成客户端代码及调用服务端遇到的问题

1、  从网上下载cxf开发的工具 apache-cxf-3.1.4.zip,

       解压文件,找到apache-cxf-3.1.4in目录,里面包含一个wsdl2java文件

2. 设置环境变量

    1、CXF_HOME=FCXFapache-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:shengchengweather.wsdl

其中-p后面是指定生成代码的报名,-d后是生成代码的磁盘位置及wsdl文件存放的位置

生成代码时,jdk版本为jdk1.8.0_131,开始使用的CXF版本是apache-cxf-2.7.6 报“    由于 accessExternalSchema 属性设置的限制而不允许 'file' 访问, 因此无法读取方案文档 'xjc.xsd'”,错误,百度了下解决方案,说是在jdk目录下的jrelib下添加一个属性文件jaxp.properties,并写上如下内容javax.xml.accessExternalSchema = all,我试了下问题并没有得到解决,后来更换了apache-cxf-3.1.4版本则生成成功。另外注意java使用cxf调用webservice最少jar包,避免jar包之间的冲突问题。

原文地址:https://www.cnblogs.com/wdxg0103/p/8493413.html