Axis2之wsdl2java工具

本章主要介绍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类
时间: 2025-01-03 01:02:34

Axis2之wsdl2java工具的相关文章

axis2 利用小工具cat.aar

Axis2: Web Service是现在最适合实现SOAP的技术,而Axis2是实现Web Service的一种技术框架(架构). 昨天把把菜刀脚本打包发现<>在xml会被转义,导致菜刀客户端无法连接.看起来别人可以修改response类型,但是我没成功.利用之前发的Cat小工具打包成aar就可以玩了. axis2管理登陆默认配置了用户名为admin,密码axis2: axis2管理后台: 想要deploy 自己的应用需要先打成对应的aar.jar包.用eclipse安装axis2插件. S

构建基于CXF的WebService服务(2)-- 利用CXF提供的wsdl2java工具创建客户端

1.环境配置 将CXF_HOME/bin加入到环境变量path中,如我的是D:\Java\Jar\apache-cxf-2.7.7\bin 打开cmd输入 wsdl2java -v 出现如下信息表示配置成功 2.wsdl2java的使用 (1)创建一个"Java Project"项目,暂且命名为client,将CXF用到的jar包引入进来,去掉jetty相关包,加入geronimo-jaxws_2.2_spec-1.1.jar包 (2)打开命令行工具,将目录切换到client项目中的s

apache CXF wsdl2java工具的使用

cxf的wsdl2java命令和JDK的wsimport命令的区别和使用 JDK提供了一个wsimport.exe的命令,主要是用于将WebService生成客户端代码,然后好调用WebService. wsimport 是根据JDK1.6.0_21及以上的生成本地代码的,它只能解析服务器端的SOAP协议为1.1,不能解析SOAP1.2的协议.如果解析SOAP1.2 将会解析不完全. 用法:前提是已经将JDK配置为了path环境变量 C:\Documents and Settings\Admin

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

上节介绍了如何使用Axis2 发布一个WebService,Axis2除了为我们编写WebService应用带来了便利,也同样简化的客户端调用的过程,本节在上节的基础上使用Axis2自带的工具生成客户端调用辅助类,并实现客户端调用代码的编写. 1.將前面下载的axis2-1.7.1-bin.zip解压,新建一个环境变量AXIS2_HOME,值为解压后目录路径.接着在path变量中添加%AXIS2_HOME%/bin;. 2.Eclipse中新建一个Java Project,打开Windows控制

axis2 发布webservice

一.简介 Apache Axis2是下一代 Apache Axis.Axis2 虽然由 Axis 1.x 处理程序模型提供支持,但它具有更强的灵活性并可扩展到新的体系结构.Axis2 基于新的体系结构进行了全新编写,而且没有采用 Axis 1.x 的常用代码.支持开发 Axis2 的动力是探寻模块化更强.灵活性更高和更有效的体系结构,这种体系结构可以很容易地插入到其他相关 Web 服务标准和协议(如 WS-Security.WS-ReliableMessaging 等)的实现中.Apache A

axis2调用webService几种方式

主要有三种方式: 第一RPC方式,不生成客户端代码 第二,document方式,不生成客户端代码 第三,用wsdl2java工具,生成客户端方式调用 java代码: package samples.quickstart.client; import javax.xml.namespace.QName; import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.om.OMElement; import org.apa

Axis2发布webservice(1)--0配置发布

Axis2发布webservice(1)--0配置发布webservice 一. 准备工作 1.下载axis2程序包:   http://axis.apache.org/axis2/java/core/download.cgi      下载时选择Binary Distribution版本的zip格式文件和WAR Distribution的zip格式文件,总共2个zip文件:      axis2-1.6.2-bin.zip:包含axis2是所有jar包,再编程时根据需要将解压后的lib文件夹下

axis2 webService开发指南(1)

参考文件:blog.csdn.net/IBM_hoojo http://hoojo.cnblogs.com/ 1 WebService简介 WebService让一个程序可以透明的调用互联网的程序,不管具体的实现细节.只要WebService公开了服务接口,远程客户端就可以调用服务.WebService是基于Http的组件服务,Webservice是分散式应用程序的发展趋势. 1.2 WebService的开源实现 WebService更多是一种标准,而不是一种具体的技术.不同的平台,不同的语言

JAX_WS 2.2 规范的webservices客户端实现(Axis2,Cxf)

为了对接之前老版本的接口,折腾了好几个小时. 主要是目前我的程序采用的是axis2的jax_rpc方式发布webservices服务,用这种服务的客户端,去调用老版本的jax_ws 2.2的接口,会报Runtime空指针. 于是采用cxf,使用了cxf3.0.3(当前版本) 的wsdl2java工具,生成了客户端的代码: wsdl2java ****?wsdl 写了一个测试类来调用: package com.test; import java.net.MalformedURLException;