JAVA怎么调用wsdl过程

介绍

这篇文章将为大家详细讲解有关JAVA怎么调用wsdl过程,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

前提:①已经提供了一个wsdl接口②该接口能正常调用

总体分为两种方式:

<李>

1。使用cxf的wsdl2java工具生成本地类(使用方式就是本地类的使用)。

<李>

2。调用远程的web服务方法:创建客户来远程调用接口。

因为第二种方式,需要熟悉wsdl,没深入了解不太好操作,主要说下第一种方式。

使用cxf的wsdl2java工具生成本地类主要步骤如下:

1,安装JDK环境(JDK版本是1.6的话,后续会报错jdk6最高只支持ws2.1规范版本)

2,下载apache cxf发布包,下载cxf: http://cxf.apache.org/download.html目前最新版本为3.1.7,解压发布包,设置CXF_HOME,并添加% CXF_HOME %/bin到路径环境变量。

3, CMD命令行输入wsdl2java -,有正常提示说明环境已经正确配置。

4, CMD运行命令:

wsdl2java  -encoding  utf-8  -d  D: \ javalib \ web  http://m.zsjsjy.com/services/resource?wsdl

(wsdl的路径)

编码表示生成的Java文件编码格式为utf8, - D表示代码生成路径为D: \ javalib \我们。运行后会在运行命令的当前路径生成以供使用的类

5,把生成的类导入项目,一般服务都叫XXXService,这个是我们要用到的接口文件

<强>上述过程中的遇到的问题:

1,因为jdk 1.6版是本的,导致下载的apache cxf发布包解压后使用报的错,这是cxf和jdk的jar包有冲突引起的!

就下载了老版本的apache-cxf-2.6.12。邮政,查了一些资料,保险起见接着把jdk换成1.7了,

如果还报错就在jdk1.7文件夹下的jre下的自由文件下创建一个支持文件夹(D: \ java \ jdk1.7.0_16 \ jre \ lib \支持),

把apache cxf中jaxb对应的三个2.2 jar包复制到支持中,最后成功生产本java类地。

2,成功生成java文件导入项目后,调整完java中报错的包文件,结果为依托类中还是有构造函数报错,注释说需要jaxws2.2来重新生成才可。

查了下资料说其不能正常编译通过是由于jax-ws2.2规约与java6冲突。但程序又不能仅以java5来编译,故需要降低jax - ws规约版本。

解决办法:执行命令:wsdl2java前端jaxws21 - D D: \ javalib \ cn http://m.zszsjsjy.com/services/resource?wsdl
重新生成来解决。

3,接口调用测试时报错,异常的线程“main"org.apache.cxf.service.factory。ServiceConstructionException

原因是生成接口的java类,命名空间路径是它原来默认的,而我放进项目时类的路径已经是现在的了。

解决办法:需要自定义- p路径重新生成:

wsdl2java  -frontend  jaxws21  -encoding  utf-8  -p  cn.teacheredu.app.projectconfigcenter.proj.module.screen.tlogin.zswebservice  -d  D: \ javalib \ cn  http://m.zszsjsjy.com/services/resource?wsdl

关于“JAVA怎么调用wsdl过程”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看的到。

JAVA怎么调用wsdl过程