主要介绍 axis2 的 wsdl2java 工具的使用。

Axis2 提供了一个 wsdl2java 命令可以根据 WSDL 文件自动产生调用 WebService 的代码。wsdl2java 命令可以在 <Axis2安装目录> 下的 bin 目录中找到。在使用 wsdl2java 命令之前需要设置 AXIS2_HOME 环境变量,该变量值是 <Axis2安装目录>。以下以 Windows 平台上使用为例。

进入 Windows 控制台,执行如下命令来生成 WebService 的客户端代码:

%AXIS2_HOME%\bin\wsdl2java -uri http://127.0.0.1:8080/awyb/services/mySoapService?wsdl -p client -s -o stub

其中 -uri 参数指定了 wsdl 文件的路径,可以是本地路径,也可以是网络路径。-p 参数指定了生成的 Java 类的包名,-o 参数指定了生成的一系列文件保存的根目录。在执行完上面的命令后,我们就会发现在当前目录下多了个stub目录,在 ./stub/src/client 目录可以找到对应的客户端调用文件,这些文件复杂调用 WebService,我们可以在程序中直接使用这些文件。例如:

package client;

import client.MySoapServiceStub.SayHello;
import client.MySoapServiceStub.SayHelloResponse; public class StubClient {
public static void main(String[] args) throws Exception {
MySoapServiceStub stub = new MySoapServiceStub();
SayHello sayHello = new SayHello();
SayHelloResponse resp = stub.sayHello(sayHello);
String ret = resp.get_return();
System.out.println(ret);
}
}

以上程序自动生成的客户端调用文件 MySoapServiceStub.java,我们通过调用该文件实现客户端访问,大大简化了调用 WebService 的步骤,并使代码更加简洁。但要注意的是,wsdl2java 命令生成的 Stub 类将 WebService 方法的参数都封装在了相应的类中,类名为方法名,例如,sayHello 方法的参数都封装在了 SayHello 类中,要想调用 sayHello 方法,必须先创建 SayHello 类的对象实例。

wsdl2java 参数详解

命令行格式为:wsdl2java [options] -uri <url or path> : A url or path to a WSDL

其中常用的options具体如下:

-o <path> 指定生成代码的输出路径
-a 生成异步模式的代码
-s 生成同步模式的代码
-p <pkg> 指定代码的package名称
-l <languange> 使用的语言(Java/C) 默认是java
-t 为代码生成测试用例
-ss 生成服务端代码默认不生成
-sd 生成服务描述文件 services.xml,仅与-ss一同使用
-d <databinding> 指定databingding,例如,adb,xmlbean,jibx,jaxme and jaxbri
-g 生成服务端和客户端的代码
-pn <port_name> 当WSDL中有多个port时,指定其中一个port
-sn <serv_name> 选择WSDL中的一个service
-u 展开data-binding的类
-r <path> 为代码生成指定一个repository
-ssi 为服务端实现代码生成接口类
-S 为生成的源码指定存储路径
-R 为生成的resources指定存储路径
--noBuildXML 输出中不生成build.xml文件
--noWSDL 在resources目录中不生成WSDL文件
--noMessageReceiver 不生成MessageReceiver类

Axis2之wsdl2java工具的更多相关文章

  1. axis2 wsdl2java工具

    wsdl2java工具使用方法描述: C:\Users\Administrator>wsdl2java -h Using AXIS2_HOME: E:\Apache_Projects\axis2 ...

  2. apache CXF wsdl2java工具的使用

    cxf的wsdl2java命令和JDK的wsimport命令的区别和使用 JDK提供了一个wsimport.exe的命令,主要是用于将WebService生成客户端代码,然后好调用WebService ...

  3. 利用wsdl2java工具生成webservice的客户端代码

    1.JDK环境  2.下载apache-cxf发布包:http://cxf.apache.org/download.html 目前最新版本为3.2.6, 解压后如下: 解压发布包,设置CXF_HOME ...

  4. 根据wsdl,apache cxf的wsdl2java工具生成客户端、服务端代码

    根据wsdl,apache cxf的wsdl2java工具生成客户端.服务端代码 apache cxf的wsdl2java工具的简单使用: 使用步骤如下: 一.下载apache cxf的包,如apac ...

  5. axis2 利用小工具cat.aar

    Axis2: Web Service是现在最适合实现SOAP的技术,而Axis2是实现Web Service的一种技术框架(架构). 昨天把把菜刀脚本打包发现<>在xml会被转义,导致菜刀 ...

  6. 使用axis2的wsdl2java把wsdl生成java文件

    原文地址:http://blog.csdn.net/walkcode/article/details/7661674 有时在我们的开发中可能会有这种情况就是你要使用webservice但是对方没有给你 ...

  7. WebService学习之旅(六)使用Apache Axis2实现WebService客户端调用

    上节介绍了如何使用Axis2 发布一个WebService,Axis2除了为我们编写WebService应用带来了便利,也同样简化的客户端调用的过程,本节在上节的基础上使用Axis2自带的工具生成客户 ...

  8. SAP和Java系统的Webservice实例

    简介: 关于Webservice的概念和原理,简单来讲,Webservice是一种基于SOAP传输协议,用WSDL描述,用XML封装数据的接口技术.由于其跨平台.跨防火墙.开发成本低.开发周期短等优势 ...

  9. Axis2 WebService客户端Axis2调用

    第一RPC方式,不生成客户端代码 第二,document方式,不生成客户端代码 第三,用wsdl2java工具,生成客户端方式调用 package samples.quickstart.client; ...

随机推荐

  1. Web前端性能优化策略

    前端性能优化需要从前端的资源类型分析,以减少请求资源和请求时间为目的.目前的类型包括图片.javascript.css.动态数据等,不同的资源对于运算.带宽等的依赖也不同,因此优化的方式也不同.参照以 ...

  2. 从EnableJpaRepositories说开去

    1 .spring boot @EnableJpaRepositories( repositoryBaseClass = BaseRepositoryImpl.class, includeFilter ...

  3. echart 设计宽度为百分比时,div撑不开

    解决思路:将百分比换算成px 一句话搞定 ("#chart").css( 'width', $("#chart").width() );$("#cha ...

  4. fatal error: vector: No such file or directory

    jni/mac.cpp:28:18: fatal error: vector: No such file or directory jni/mac.cpp:29:18: fatal error: me ...

  5. react-native-image-picker iOS设置

    效果图,因为我用的是模拟器,所以拍照功能没有效果,不过可从相册选择,下面是具体的效果图 把react-native-image-picker添加到项目 yarn add react-native-im ...

  6. 误删除innodb ibdata数据文件 文件句柄 文件描述符 proc fd

    误删除innodb ibdata数据文件  文件句柄  文件描述符  proc  fd http://www.cnblogs.com/gomysql/p/3702216.html 提示:如果不小心通过 ...

  7. asxios--form data提交,setcookie

    React native 项目,部分接口用form data 提交,以及在Android端,虽然设置了请求携带cookie,但每次请求携带的cookie跟初始化时都不一样,目前做法是去到初始化中返回的 ...

  8. 在Linux直接运行安卓程序

    Linux上的软件少得可怜,要是能够直接运行安卓程序,那将是意见很酷的事情. 方法原理:首先这个方法不需要开启安卓虚拟机,是直接在Linux上运行的. 谷歌在很早之前提出了archon的方案,能够直接 ...

  9. ssm框架整合

    1.1 整合的思路 1.1.1 Dao层 使用mybatis框架.创建SqlMapConfig.xml.(可以是任意名字) 创建一个applicationContext-dao.xml   (通过sp ...

  10. python导入csv/txt文件

    1. 导入csv文件 ### python导入csv文件的三种方法 ```python #原始的方式 lines = [line.split(',') for line in open('iris.c ...