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

Posted wangxg

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cxf webservice生成客户端代码及调用服务端遇到的问题相关的知识,希望对你有一定的参考价值。

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包之间的冲突问题。

 



以上是关于cxf webservice生成客户端代码及调用服务端遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章

cxf如何创建webservice客户端

如何使用CXF调用webservice接口

webservice发布服务:CXF及客户端调用

java cxf动态调用服务端的webservices方法

如何让cxf客户端简单支持ssl

cxf 生成 webservice 客户端