创建的客户端是基于 Axis2创建webservice服务的方式 之 ADB 方式(一) 创建的服务端.
相关wsdl文件需要参考上面创建服务端的文章.
1. 调用wsdl命令创建客户端类
到TestAdb.wsdl所在的resources目录下面,执行下面的命令:
%AXIS2_HOME%\bin\wsdl2java -uri TestAdb.wsdl -p test.adb.clients -d adb -s -o ./clientoutput
-p test.adb.clients 表示将创建的代码放到test.adb.clients包里面
-d adb 表示使用adb的方式绑定
-s 表示创建同步(阻塞方式)代码
-o ./clientoutput 表示创建代码的存放目录
命令执行完毕后,生成文件及其目录结构如下,
可见,生成的java文件,已经按包名组织好了目录结构放到src下了,同时还生成了一个build.xml文件.
wsdl2java工具想的还是很周到的.
上面的命令其实只生成了一个TestAdbStub.java文件.这个文件可以在附件的工程中找到.
下面分析下这个类的结构:
有这个outline图可知,生成的TestAdbStub类首先有几种构造函数,这个TestAdbStub相当于访问webservice服务的通道.
构造函数中有一个比较常用:TestAdbStub(String),这里的String参数就是webservice的服务地址,传递这个地址,就可以构造一个
TestAdbStub对象,通过这个对象可以调用webservice提供的服务.
另外,注意到TestAdbStub对象还提供了两个方法 setName和getName,这个和webservice实现的接口(ITestAdb.Java)方法名称是一致的.
但是,TestAdbStub的方法中返回值和参数类型都不一样.
相关的类型:GetNameResponse,GetName和SetName都是TestAdbStub类中以静态内部类实现的类型.
这里的类型是根据wsdl中的types元素定义的,用来规范服务端和客户端之间传递数据的格式.
(符合soap协议) 参考 Axis2创建webservice服务的方式 之 ADB 方式(二)
拿TestAdbStub的setName方法来说,这个方法没有返回值,有个SetName类型的参数,根据wsdl中的定义,这个SetName定义了一个数据结构,
就相当于一个xml文件的元素,它必须包含一个args0的子元素,作为传递个服务器端setName函数的参数.
于是客户端调用TestAdbStub.setName(SetName)时,相当于发送一个请求,调用服务器端的setName方法,
SetName参数中需要事先调用SetName的public void setArgs0(java.lang.String param)方法,
这样讲将SetName对象传递给服务器端后,服务器端就知道调用setName方法,并且可以得到setName方法需要的参数.
由此可以用下面的代码实现客户端的访问:
package test.adb.clients; import java.rmi.RemoteException; public class TestAdbClient { private static TestAdbStub stub = null; public static void setName(String args0) throws RemoteException { //相当于创建一个请求 TestAdbStub.SetName req = new TestAdbStub.SetName(); //设置请求参数 req.setArgs0(args0); //发送请求 stub.setName(req); } public static String getName() throws RemoteException { String result = ""; //相当于创建一个请求 TestAdbStub.GetName req = new TestAdbStub.GetName(); //发送请求,取得请求的返回值(因为getName有返回值,所以有个GetNameResponse类型) TestAdbStub.GetNameResponse response = stub.getName(req); //GetNameResponse 类型取得返回值 result = response.get_return(); return result; } public static void main(String[] args) { try { stub = new TestAdbStub("http://localhost:8080/axis2/services/TestAdb"); System.out.println(getName()); //输出Jack,因为webservice服务类,初始化时name设置为jack System.err.println("-----------"); setName("Frank"); System.out.println(getName());//输出Frank } catch (Exception e) { e.printStackTrace(); System.err.println("-----------"); } } }
附件的工程,需要将Axis2 1.6.2版本的lib中所有jar包拷贝到webInf的lib里面
相关推荐
本篇将详细介绍使用Axis2通过ADB(Abstract Data Binding)方式创建Web服务的方法。 ADB,全称Abstract Data Binding,是一种轻量级的数据绑定框架,它简化了SOAP消息到Java对象的映射过程。与传统的JavaBeans或...
本话题将详细阐述如何使用Axis2创建Java Web服务以及客户端在调用这些服务时所需的重要依赖库。 1. **Axis2组件**: - `axis2-kernel-1.5.jar`:这是Axis2的核心库,包含了Web服务的基础架构和处理机制。 - `axis...
Axis2是Apache软件基金会开发的一个高效且灵活的Web服务引擎,它允许开发者用多种方式来创建Web服务,其中一种就是通过POJO(Plain Old Java Object)方式。这篇博文主要探讨了如何使用Axis2通过POJO方式构建Web服务...
包含webservice客户端开发所需要所有jar包, axiom-api-1.2.13.jar,axis2-adb-1.4..jar,axis2-adb-1.6.2.jar,axiom-dom-1.2.13.jar,axis2-kernel-1.6.2.jar,axis2-transport-http-1.6.2.jar,axis2-transport-...
在本文中,我们将深入探讨如何使用Spring、Axis2和Maven构建一个基于Java的Web服务(WebService)服务端示例。这些技术的结合为开发人员提供了高效、灵活且可扩展的解决方案来创建和消费Web服务。 首先,让我们了解...
【Axis2 WebService 开发指南】是关于使用Apache Axis2框架创建和操作Web服务的教程。Axis2是Axis1的升级版,提供了更多的功能和改进的性能。在开始之前,你需要下载并安装必要的开发工具,包括Axis2的jar包和...
在Java世界中,开发Web服务(Web Service)是一种常见的接口通信方式,Axis2是Apache软件基金会提供的一个开源工具,专门用于构建和部署Web服务。它基于SOAP(简单对象访问协议)标准,支持WS-*规范,提供了高效且...
Apache Axis2是Java平台上一个高效且灵活的Web服务框架,它允许开发者用多种方式创建和消费Web服务。本篇将深入探讨使用Axis2实现Web服务的五种主要方法:POJO、AXIOM、ADB、XMLBeans和JIBX,并涵盖客户端和服务器端...
标题中的“axis2之webservice”指的是Apache Axis2框架下的Web服务实现技术。Apache Axis2是Axis1的升级版,是一个高效、灵活且强大的Web服务引擎,用于创建和部署Web服务。它支持SOAP 1.1和1.2,以及RESTful Web...
在Java开发中,Axis2是一个广泛使用的Web服务框架,它基于Apache SOAP项目,提供了一种高效、灵活且可扩展的方式来创建和部署Web服务。本文将详细介绍标题为“axis2访问WebService所需jar包”的相关知识点,以及描述...
本实例将深入讲解如何使用Axis2来创建一个简单的WebService,并将其整合到Web项目中。 1. **Axis2介绍** Axis2是Axis1的升级版,它基于Apache SOAP项目,并提供了更多的特性,如更好的模块化结构、支持WS-*标准...
- **数据绑定**:AXIS2支持多种数据绑定框架,如ADB(Axis2 Data Binding)、JAXB(Java Architecture for XML Binding)和XMLBeans,它们可以帮助将XML消息自动转换为Java对象,反之亦然。 - **消息处理**:AXIS2...
Web服务的核心技术之一就是WebService,而Axis2是Apache软件基金会提供的一个高效、可扩展且灵活的Web服务引擎,常用于构建和部署Web服务。MyEclipse是一款强大的集成开发环境(IDE),特别适合Java EE项目的开发,...
标题“axis2 + webService所需要的jar包”指的是为了在项目中使用Axis2框架来实现Web服务,你需要包含一系列特定的Java类库(jar包)。这些jar包提供了 Axis2 和Web服务相关的功能支持。描述中的“已经简化了不必要...
里面包含axis2-adb-codegen-1.5.4.jar、axis2-java2wsdl-1.5.4.jar、axis2-transport-local-1.5.4.jar、mail-1.4.jar、woden-impl-dom-1.0M8.jar、XmlSchema-1.4.3.jar等十几个jar包
3. **客户端调用**:可以使用Axis2客户端或者任何SOAP客户端工具来调用服务。例如,创建一个SOAP请求并发送到服务地址。 四、 Axis2特性与优势 - **模块化**:Axis2的模块化设计使得服务可以根据需要加载特定功能,...
《Axis2 WebService开发指南》是一本专注于Java平台上的Web服务框架Axis2的权威书籍,适合于希望深入了解和使用Axis2进行Web服务开发的IT专业人士。Axis2是Apache软件基金会开发的一个高性能、灵活且可扩展的Web服务...
<artifactId>axis2-adb <version>1.6.2 <groupId>org.apache.axis2 <artifactId>axis2-transport-local <version>1.6.2 <groupId>org.apache.axis2 <artifactId>axis2-...
压缩包文件"axis2客户端最少jar包-self.rar"可能包含了创建客户端所需的最小集。 2. **构建客户端代码**:使用Axis2,你可以通过WSDL(Web Services Description Language)文件自动生成客户端代码。WSDL文件描述了...
在开发Web服务时,Axis2是一个非常流行的Java框架,它提供了高效且灵活的方式来创建和部署Web服务。本文将深入探讨Axis2的相关知识点,以及如何利用它与Spring框架进行整合。 一、Axis2简介 Axis2是Apache软件基金...