JAVA如何调用wsdl过程详解

 更新时间:2019年07月05日 09:52:00   作者:徐小木L  
这篇文章主要介绍了JAVA如何调用wsdl过程详解,文中介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

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

总体分为两种方式:

  • 1.使用cxf的wsdl2java工具生成本地类(使用方式就是本地类的使用)。
  • 2.调用远程的web service方法:创建client来远程调用接口。

因为第二种方式,需要熟悉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到path环境变量。

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

4、CMD运行命令 :

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

(wsdl 的路径)

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

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

上述过程中的遇到的问题

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

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

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

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

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

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

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

3、接口调用测试时报错,Exception in thread "main" org.apache.cxf.service.factory.ServiceConstructionException

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

解决办法:需要 自定义-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 如何将表格数据导入word文档中

    Java 如何将表格数据导入word文档中

    这篇文章主要介绍了Java将表格数据导入word文档中的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • java集合类HashMap源码解析

    java集合类HashMap源码解析

    这篇文章主要介绍了Java集合之HashMap用法,结合实例形式分析了java map集合中HashMap定义、遍历等相关操作技巧,需要的朋友可以参考下
    2021-06-06
  • java接口防重提交的处理方法

    java接口防重提交的处理方法

    本文主要介绍了java接口防重提交的处理方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-05-05
  • 浅谈什么是SpringBoot异常处理自动配置的原理

    浅谈什么是SpringBoot异常处理自动配置的原理

    今天给大家带来的是关于Java的相关知识,文章围绕着SpringBoot异常处理自动配置展开,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Mybatis/Mybatis-Plus驼峰式命名映射的实现

    Mybatis/Mybatis-Plus驼峰式命名映射的实现

    本文主要介绍了Mybatis-Plus驼峰式命名映射的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • idea上提交项目到gitee 最后出现 Push rejected的问题处理方法

    idea上提交项目到gitee 最后出现 Push rejected的问题处理方法

    这篇文章主要介绍了idea上面提交项目到gitee 最后出现 Push rejected的问题处理方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 基于Spring Security前后端分离的权限控制系统问题

    基于Spring Security前后端分离的权限控制系统问题

    本文给大家分享基于Spring Security前后端分离的权限控制系统问题,需要了解权限如何加载,权限匹配规则和登录的实现代码,对Spring Security权限控制系统相关知识感兴趣的朋友一起看看吧
    2021-06-06
  • java中volatile关键字的作用与实例代码

    java中volatile关键字的作用与实例代码

    这篇文章主要给大家介绍了关于java中volatile关键字的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04
  • Java将文件按照指定格式切分成多个文件

    Java将文件按照指定格式切分成多个文件

    这篇文章主要为大家详细介绍了Java如何将文件按照指定格式切分成多个文件,文中的示例代码简洁易懂,有需要的小伙伴可以参考一下
    2025-03-03
  • Java将本地项目部署到Linux服务器的实践

    Java将本地项目部署到Linux服务器的实践

    本文主要介绍了Java将本地项目部署到Linux服务器的实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>
    2022-06-06

最新评论