使用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;
}
}
分享到:
相关推荐
在使用 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企业级应用领域,Web服务(Web Services)扮演着至关重要的角色。它是一种平台独立的、分布式计算技术,用于实现不同应用程序间的...
总结一下,"webServices学习之二——axis1传递复杂类型javabean"这篇文章可能会详细讲解如何使用Axis1框架处理JavaBean对象,包括创建JavaBean、生成WSDL、部署服务以及客户端调用等步骤。了解这些内容对于开发基于...
2. **Java客户端库**:为了在Java中调用SOAP Web服务,我们可以使用Apache CXF、Axis2或者JAX-WS(Java API for XML Web Services)等库。这些库提供了方便的API来创建SOAP请求和解析响应。 3. **创建SOAP客户端**...
在编写客户端代码时,通常需要使用AXIS2提供的API来调用Web服务。导入相应的AXIS2库,创建Stub类实例,然后调用对应的方法,传入参数并接收返回值。例如,对于WeatherService,客户端代码可能如下所示: ```java ...
Eclipse的AXIS插件是开发Web服务的重要工具,它为开发者提供了在Eclipse集成开发环境中创建、测试和部署Web服务的便利。本文将详细解析这个插件的使用及其核心功能,以及与AXIS相关的开发知识。 首先,AXIS是一个...
在实践中,有许多工具和框架可以帮助简化Web Services的开发,例如Apache Axis、JAX-WS(Java API for XML Web Services)和Spring框架的Web Services模块。这些工具自动处理WSDL生成、服务绑定和SOAP消息的编解码,...
Axis2 常见异常总结 Axis2 是一个流行的WebService框架,它提供了许多功能强大且灵活的特性。...如果我们想使用 invokeRobust 调用服务方法,需要在服务方法中加入返回值使用 axis2 不当造成的异常。
### 使用Axis调用在线天气预报服务的实现方法 #### 一、概述 本文将详细介绍如何在Java环境中利用Apache Axis框架来调用一个在线天气预报服务。这个示例演示了如何在MyEclipse环境下配置和使用Axis 2进行网络服务...
- 返回值:文档对象数组。 - 功能描述:获取用户有权限访问的所有文档对象数组,但不包含具体内容和附件。 #### 四、接口调用示例 以下是一个简单的示例代码,展示如何使用Eclipse自动生成的客户端程序来调用Doc...
通过本指南,你将对 Axis WebService 开发有深入的理解,能够熟练地创建、发布和调试 WebServices,同时也能解决跨平台调用中可能遇到的问题。在实际工作中,结合 Axis 的各种工具和特性,你将能够构建出高效、稳定...
在本场景中,我们将关注如何使用gSoap来构建一个C++客户端,以便调用由Java的Axis框架编写的Web服务。 1. **gSoap的基本概念** gSoap的主要功能是自动生成客户端和服务器的代码,这些代码能够处理SOAP消息的编码和...
总的来说,"AXIS 天气预报 QQ在线查询"项目涉及了通过AXIS调用Web服务,使用WSDL2JAVA工具生成客户端代码,以及处理特定类型(如DATASET)的兼容性问题。开发者需要具备Java编程、Web服务调用和XML处理的相关知识,...
通过学习和实践,你将能够熟练地使用Java和Apache Axis调用远程的Web Service。同时,也要注意随着技术的发展,现在还有其他工具如JAX-WS(Java API for XML Web Services)和Spring-WS,它们提供了更现代且易于使用...
Web服务(Web Services)是一种基于互联网的、平台独立的交互方式,它允许不同的应用程序之间进行数据交换和功能调用。WSDL(Web Services Description Language)是用于定义Web服务接口的标准XML格式,它描述了服务...
调用这个Web Service可以通过SOAP请求或使用AXIS2提供的客户端工具,具体调用方式取决于你的需求和环境。通常,你可以通过以下URL获取服务的WSDL定义: ``` http://localhost:8080/axis2/services/myService?wsdl ``...