Apache CXF生成WebService的客户端

简介: Apache CXF生成WebService的客户端
前言

前几天有个webservice 的API要调用,最开始用的是xfire发现有的方法能调通,有的不行。百般折腾后看到有网友说使用这样的方式可以,然后试了一下确实不错,分享给大家。

一、下载安装

下载apache-cxf发布包:http://cxf.apache.org/download.html

二、解压

假设解压在D盘

三、设置环境变量

在Windows系统的控制面板–所有控制面板项–系统–高级系统设置–环境变量中设置如下值:

CXF_HOME=D:\apache-cxf-3.3.3

path=;%CXF_HOME %/bin;

四、运行

首先要求安装jdk,如果没有的请查看我另外的帖子《JDK的安装及环境变量配置》

打开命令行模式

输入wsdl2java -help 可以看到相关提示

生成客户端代码

wsdl2java -encoding utf-8 -d D:/20190906 http://xxx.com/services/DemoService?wsdl

其中http://xxx.com/services/DemoService?wsdl就是webservice的api接口,D:/20190906是指定代码生成的地方。

执行成功后在D:/20190906目录有已经生成好的客户端代码

然后把整个目录包拷贝到你的java工程里面。

五、调用示例
DamageService_Service service = new DamageService_Service();
DamageService damageService = service.getDamageServicePort();
DamageCaseResults result = damageService.getCompleteCase();

这里的result就是你想要的结果,这样写起代码来也很简洁。

六、答疑
  1. 如何确认哪个是服务调用类,如上面示例中的DamageService_Service
    首先这个肯定是以Service结尾,如果不是也不用看了,如果有多个可以打开来看一下

    是否有@WebServiceClient的定义,如果有就基本上确定了。
    再不行就逐个试一下,总能找到。

2.如何调用方法

首先认证查看api http://xxx.com/services/DemoService?wsdl描述,看看有哪些方法,然后直接使用服务调用类去调用就OK了。


参考:

https://www.cnblogs.com/shaosks/p/9617401.html

相关文章
|
4天前
|
Java Apache C++
别再手写RPC了,Apache Thrift帮你自动生成RPC客户端及服务端代码
Thrift 是一个轻量级、跨语言的远程服务调用框架,由 Facebook 开发并贡献给 Apache。它通过 IDL 生成多种语言的 RPC 服务端和客户端代码,支持 C++、Java、Python 等。Thrift 的主要特点包括开发速度快、接口维护简单、学习成本低和多语言支持。广泛应用于 Cassandra、Hadoop 等开源项目及 Facebook、百度等公司。
别再手写RPC了,Apache Thrift帮你自动生成RPC客户端及服务端代码
|
3月前
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
【Azure 应用服务】Web App Service 中的 应用程序配置(Application Setting) 怎么获取key vault中的值
|
8天前
【Azure App Service】PowerShell脚本批量添加IP地址到Web App允许访问IP列表中
Web App取消公网访问后,只允许特定IP能访问Web App。需要写一下段PowerShell脚本,批量添加IP到Web App的允许访问IP列表里!
|
3月前
|
关系型数据库 MySQL Linux
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
【Azure 应用服务】在创建Web App Service的时候,选Linux系统后无法使用Mysql in App
|
3月前
|
Shell PHP Windows
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
【Azure App Service】Web Job 报错 UNC paths are not supported. Defaulting to Windows directory.
|
3月前
|
Linux 应用服务中间件 网络安全
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
【Azure 应用服务】查看App Service for Linux上部署PHP 7.4 和 8.0时,所使用的WEB服务器是什么?
|
3月前
【Azure 应用服务】通过 Web.config 开启 dotnet 应用的 stdoutLog 日志,查看App Service 产生500错误的原因
【Azure 应用服务】通过 Web.config 开启 dotnet 应用的 stdoutLog 日志,查看App Service 产生500错误的原因
|
3月前
|
Linux Python
【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
【Azure 应用服务】Azure App Service For Linux 上实现 Python Flask Web Socket 项目 Http/Https
|
3月前
|
存储 安全 网络安全
【Azure 环境】使用Azure中的App Service部署Web应用,以Windows为主机系统是否可以启动防病毒,防恶意软件服务呢(Microsoft Antimalware)?
【Azure 环境】使用Azure中的App Service部署Web应用,以Windows为主机系统是否可以启动防病毒,防恶意软件服务呢(Microsoft Antimalware)?
|
3月前
|
存储 Linux 网络安全
【Azure 应用服务】App Service For Linux 如何在 Web 应用实例上住抓取网络日志
【Azure 应用服务】App Service For Linux 如何在 Web 应用实例上住抓取网络日志

推荐镜像

更多