`
hu437
  • 浏览: 194533 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
社区版块
存档分类
最新评论

使用axis调用返回值为对象数组的WebServices

    博客分类:
  • SOA
阅读更多

使用Axis调用WebSerivices非常简单,废话不多说,直接上代码

 

import java.rmi.RemoteException;

import javax.xml.namespace.QName;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.ServiceException;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.apache.axis.encoding.XMLType;
import org.apache.axis.encoding.ser.BeanDeserializerFactory;
import org.apache.axis.encoding.ser.BeanSerializerFactory;


public class ClientCall {
	public static void main(String[] args) {
		try {
			String url = "此处为webServices地址";
			Service service = new Service();
			Call call = (Call) service.createCall();
			call.setTargetEndpointAddress(url);
			call.setOperationName(new QName(url, "exec"));//exec为要调用的方法名
			 call.addParameter(new QName("此处为命名空间,为WSDL文件中的targetNamespace地址",
			 "units"),XMLType.SOAP_STRING,ParameterMode.IN);//这里的units为传入参数的变量名字
			call.setReturnType(new QName("此处为命名空间,为WSDL文件中的targetNamespace地址",
			"response"), Xljg[].class);//Xlgj[]这里是重点,返回数组时主要在些配置,Xljg为返回的对象

			// 注册映射关系
			QName XljgInfo = new QName("此处为命名空间,为WSDL文件中的targetNamespace地址", "xljg");//此处的xljg为WSDL文件中complexType name的属性值

			call.registerTypeMapping(Xljg.class, XljgInfo,
					new BeanSerializerFactory(Xljg.class, XljgInfo),
					new BeanDeserializerFactory(Xljg.class, XljgInfo));//Xljg.class同上,这里不需要为数组

			Xljg[] xljg = (Xljg[]) call.invoke(new Object[] {"昆明"});//昆明为传入的参数,即上面的units
			System.out.println(xljg.length);//打印输出数组
			for(Xljg xl : xljg){
				System.out.println(xl.getQualifications()+": "+xl.getCount());
			}
		} catch (ServiceException e) {
			e.printStackTrace();
		} catch (RemoteException e) {
			e.printStackTrace();
		}
	}
}

 

 Xljg类的代码:

public class Xljg {
	private String qualifications;
	private long count;
	
	public String getQualifications() {
		return qualifications;
	}
	public long getCount() {
		return count;
	}

	
}

 

2
2
分享到:
评论

相关推荐

    Axis动态调用webService

    在使用 Axis 调用 Web 服务之前,需要将以下 JAR 包添加到项目的类路径中: 1. xmlsec-1.3.0.jar 2. axis.jar 3. axis-ant.jar 4. axis-schema-1.3.jar 5. axis-wsdl4j-1.5.1.jar 6. commons-discovery-0.2.jar 7. ...

    java调用webservices

    ### Java调用WebServices知识点详解 #### 一、概述 在现代软件开发中,特别是Java企业级应用领域,Web服务(Web Services)扮演着至关重要的角色。它是一种平台独立的、分布式计算技术,用于实现不同应用程序间的...

    webServices学习之二——axis1传递复杂类型javabean

    总结一下,"webServices学习之二——axis1传递复杂类型javabean"这篇文章可能会详细讲解如何使用Axis1框架处理JavaBean对象,包括创建JavaBean、生成WSDL、部署服务以及客户端调用等步骤。了解这些内容对于开发基于...

    Java调用Web服务(Web Services),如此简单

    2. **Java客户端库**:为了在Java中调用SOAP Web服务,我们可以使用Apache CXF、Axis2或者JAX-WS(Java API for XML Web Services)等库。这些库提供了方便的API来创建SOAP请求和解析响应。 3. **创建SOAP客户端**...

    用WebService传递POJO和对象数组的例子.doc

    在编写客户端代码时,通常需要使用AXIS2提供的API来调用Web服务。导入相应的AXIS2库,创建Stub类实例,然后调用对应的方法,传入参数并接收返回值。例如,对于WeatherService,客户端代码可能如下所示: ```java ...

    eclipse的AXIS插件(开发WebServices的)第二个

    Eclipse的AXIS插件是开发Web服务的重要工具,它为开发者提供了在Eclipse集成开发环境中创建、测试和部署Web服务的便利。本文将详细解析这个插件的使用及其核心功能,以及与AXIS相关的开发知识。 首先,AXIS是一个...

    如何创建Web Services程序

    在实践中,有许多工具和框架可以帮助简化Web Services的开发,例如Apache Axis、JAX-WS(Java API for XML Web Services)和Spring框架的Web Services模块。这些工具自动处理WSDL生成、服务绑定和SOAP消息的编解码,...

    axis2常见异常总结

    Axis2 常见异常总结 Axis2 是一个流行的WebService框架,它提供了许多功能强大且灵活的特性。...如果我们想使用 invokeRobust 调用服务方法,需要在服务方法中加入返回值使用 axis2 不当造成的异常。

    通过axis使用网上天气预报服务的demo

    ### 使用Axis调用在线天气预报服务的实现方法 #### 一、概述 本文将详细介绍如何在Java环境中利用Apache Axis框架来调用一个在线天气预报服务。这个示例演示了如何在MyEclipse环境下配置和使用Axis 2进行网络服务...

    Axis WebService 技术指南,开发文档

    通过本指南,你将对 Axis WebService 开发有深入的理解,能够熟练地创建、发布和调试 WebServices,同时也能解决跨平台调用中可能遇到的问题。在实际工作中,结合 Axis 的各种工具和特性,你将能够构建出高效、稳定...

    gSoap webservices C++ 客户端

    在本场景中,我们将关注如何使用gSoap来构建一个C++客户端,以便调用由Java的Axis框架编写的Web服务。 1. **gSoap的基本概念** gSoap的主要功能是自动生成客户端和服务器的代码,这些代码能够处理SOAP消息的编码和...

    泛微 ecology9.0 文档(DocService)WebService接口使用说明

    - 返回值:文档对象数组。 - 功能描述:获取用户有权限访问的所有文档对象数组,但不包含具体内容和附件。 #### 四、接口调用示例 以下是一个简单的示例代码,展示如何使用Eclipse自动生成的客户端程序来调用Doc...

    AXIS 天气预报 QQ在线查询

    总的来说,"AXIS 天气预报 QQ在线查询"项目涉及了通过AXIS调用Web服务,使用WSDL2JAVA工具生成客户端代码,以及处理特定类型(如DATASET)的兼容性问题。开发者需要具备Java编程、Web服务调用和XML处理的相关知识,...

    java调用webservice接口方法

    通过学习和实践,你将能够熟练地使用Java和Apache Axis调用远程的Web Service。同时,也要注意随着技术的发展,现在还有其他工具如JAX-WS(Java API for XML Web Services)和Spring-WS,它们提供了更现代且易于使用...

    axis1-WebService

    除了JWS,还可以使用Wsdd(Web Services Deployment Descriptor)文件来发布Web服务。Wsdd文件定义了服务的元数据,包括端点、操作、类型映射等,提供了更灵活的配置方式。 **四、处理复杂对象和内部类** Axis支持...

    基于WSDL契约优先的web services服务器端和客户端开发方式

    Web服务(Web Services)是一种基于互联网的、平台独立的交互方式,它允许不同的应用程序之间进行数据交换和功能调用。WSDL(Web Services Description Language)是用于定义Web服务接口的标准XML格式,它描述了服务...

    axis2创建webservice操作手册.doc

    - **WSDL** (Web Services Description Language): WSDL是一个XML文档,用于描述具体的WebService的服务接口,包括服务的位置(URL)、可用的方法名、参数列表和返回值等。它是客户端发现和调用服务的关键。 - **关系*...

    webservice的axis2开发

    WSDL(Web Services Description Language)是一个XML文档,它公开了服务的接口细节,包括URL、方法名、参数和返回值。因此,WebService可以表示为:WebService = SOAP + HTTP + WSDL。SOAP消息通常包含在HTTP报文的...

Global site tag (gtag.js) - Google Analytics