`

axis2调用中国气象局web服务,用dom4j解析的例子

 
阅读更多
package service.cilent;

import java.util.Iterator;
import org.apache.axiom.om.OMAbstractFactory;
import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.OMFactory;
import org.apache.axiom.om.OMNamespace;
import org.apache.axiom.soap.SOAP11Constants;
import org.apache.axis2.Constants;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;
import org.apache.axis2.transport.http.HttpTransportProperties.ProxyProperties;
import org.dom4j.Document;
import org.dom4j.DocumentHelper;
import org.dom4j.Element;


public class JavaServicesClient {
	private static EndpointReference targetEPR = new EndpointReference("http://www.webxml.com.cn/WebServices/WeatherWebService.asmx");

	@SuppressWarnings("unchecked")
	public void getResult() throws Exception {
		ServiceClient sender = new ServiceClient();
		sender.setOptions(buildOptions());
		//得到axis2定义的xml文件格式
		OMElement result = sender.sendReceive(buildParam());
		//将axis2的xml格式转换为dom的为XML格式	
		Document doc = DocumentHelper.parseText(result.toString());  
		//获取根节点
		Element rootElt = doc.getRootElement(); 
		// 获取根节点下的getWeatherbyCityNameResult子节点
        Iterator iter = rootElt.elementIterator("getWeatherbyCityNameResult"); 
        while(iter.hasNext()){
        	Element recordEle = (Element) iter.next();
        	// 获取子节点getWeatherbyCityNameResult下的子节点string
        	Iterator iters = recordEle.elementIterator("string"); 
        	while(iters.hasNext()){
        		Element itemEle = (Element) iters.next();
        		//输出string的值
        		System.out.println(itemEle.getTextTrim());
        	}
        }
	}

	private static OMElement buildParam() {
		OMFactory fac = OMAbstractFactory.getOMFactory();
		OMNamespace omNs = fac.createOMNamespace("http://WebXml.com.cn/", "");
		OMElement data = fac.createOMElement("getWeatherbyCityName", omNs);
		OMElement inner = fac.createOMElement("theCityName", omNs);
		inner.setText("深圳");
		data.addChild(inner);
		return data;
	}

	private static Options buildOptions() {
		Options options = new Options();
		options.setSoapVersionURI(SOAP11Constants.SOAP_ENVELOPE_NAMESPACE_URI);
		options.setAction("http://WebXml.com.cn/getWeatherbyCityName");

		options.setTo(targetEPR);
		// options.setProperty 如果不是通过代理上网,此句可省
		// options.setProperty(HTTPConstants.PROXY, buildProxy());
		options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
		return options;
	}

	/**
	 * 本机采用代理服务器上网时,需要设置代理
	 * 
	 * @return
	 */
	public static ProxyProperties buildProxy() {
		ProxyProperties proxyProperties = new ProxyProperties();
		proxyProperties.setProxyName("代理名称");
		proxyProperties.setProxyPort(8080);
		return proxyProperties;
	}

	public static void main(String[] args) throws Exception {
		JavaServicesClient s = new JavaServicesClient();
		s.getResult();
	}
}

 

分享到:
评论

相关推荐

    Java+Axis2调用Web Services 网络接口

    Java和Axis2是开发Web服务客户端的重要工具,用于调用基于SOAP协议的Web服务。本文将深入探讨如何利用Java和Axis2库来实现这一功能,同时结合提供的代码示例进行详细解析。 首先,Web服务是一种通过网络进行通信的...

    axis2发布webservice和调用axis2服务接口

    本文将详细讲解如何使用Axis2来发布Web服务以及如何生成客户端代码来调用这些服务。 首先,让我们了解发布Web服务的过程: 1. **创建WebService**:在Axis2中,可以通过编写一个简单的Java类并暴露其方法作为Web...

    axis2客户端调用axis1服务接口

    axis2客户端调用axis1服务接口 调用方式 使用RPC方式调用WebService,为了防止冲突可以增加 // 与weblogic的lib冲突配置 System.setProperty("javax.xml.stream.XMLInputFactory", ...

    myService_purpose1sv_cxf调用axis2的接口服务_接口服务_

    在描述中,“用框架cxf调用axis2提供的接口服务的一个简单例子”,意味着我们将探讨一个简单的CXF客户端如何与Axis2服务端进行交互。这通常涉及到以下步骤: 1. **创建CXF客户端**:首先,我们需要创建一个CXF...

    java基于Axis2调用C#开发的web service获取xml结果

    本主题将深入探讨如何使用Java的Axis2框架调用由C#开发的Web服务来获取XML结果。以下是相关知识点的详细解释: 1. **Web Service**: Web服务是一种通过HTTP协议进行通信的应用程序接口(API),允许不同系统间的...

    dom4j以及axis所需jar包

    DOM4J是处理XML文档的一个强大而灵活的Java库,而Axis则是Apache组织提供的一个开源SOAP(简单对象访问协议)工具包,用于构建Web服务和客户端应用程序。 **DOM4J知识点:** DOM4J是一个用于XML、XPath和XSLT的...

    axis2调用WebService详细说明

    在本文档中,我们将详细介绍如何使用Axis2来发布和调用WebService服务。 对于Axis2程序包的下载,可以访问其官方网站:[http://ws.apache.org/axis2/](http://ws.apache.org/axis2/) 进行下载。需要注意的是,由于...

    Axis发布调用服务

    【Axis发布调用服务】是关于使用Apache Axis框架创建和部署Web服务的教程,适合初学者。Apache Axis是一个开源的Java库,遵循SOAP规范,使Java应用服务器具备提供Web服务的能力。 **一、Web服务简介** Web服务是一...

    基于 Apache Axis2 将上述类的方法对外提供 Web 服务,生成 WSDL 文件,以及调用服务

    在这个教程中,我们将学习如何使用Apache Axis2将一个简单的类转换为对外提供服务的Web服务,并生成WSDL文件,以及如何调用这些服务。 首先,我们需要了解提供的类`Person`,它包含`name`、`age`和`gender`三个属性...

    Axis动态调用webService

    2. 高性能:Axis 使用了高性能的 SOAP messaging 机制来调用 Web 服务。 3. 可扩展性:Axis 提供了丰富的 API,允许开发者自定义和扩展 Axis 的功能。 Axis 的缺点 虽然 Axis 是一个功能强大且流行的 Web 服务框架...

    AXIS2客户端调用实例

    在本文中,我们将深入探讨如何使用AXIS2客户端进行服务调用,包括AXIS2的基本概念、配置、服务引用以及调用流程。 **AXIS2简介** AXIS2是Apache软件基金会开发的一个强大的Web服务引擎,它支持多种协议,如SOAP 1.1...

    axis2客户端调用webService接口,精简jar包

    在IT行业中,Web服务是应用程序之间进行通信的一种标准方法,而Axis2是Apache软件基金会开发的一个Web服务框架,专门用于创建和消费Web服务。本文将深入探讨如何使用Axis2客户端调用WebService接口,并且会特别关注...

    AXIS2远程调用WebService示例(Eclipse+AXIS2)工具和所用包.rar

    AXIS2远程调用WebService是Java开发者在进行分布式服务交互时常用的一种技术。本文将详细介绍如何使用Eclipse集成开发环境和AXIS2框架创建并调用WebService。首先,我们需要准备以下基础工具: 1. Eclipse IDE:这...

    Axis2教程和java调用webservice的各种方法总结

    标题“Axis2教程和java调用webservice的各种方法总结”表明了本文档主要聚焦于两个核心内容:一是Axis2框架的使用教程,二是Java语言调用Web服务的不同方法的综合概述。 描述中的“Axis2教程”暗示了会详细讲解Axis...

    axis2调用WCF

    - 生成服务代理:使用WSDL(Web服务描述语言)和Mex( Metadata Exchange)端点,Apache Axis2可以生成Java客户端代码,这些代码包含了调用WCF服务所需的所有信息。 - 配置Axis2:将生成的Java客户端代码导入到...

    axis2客户端调用带Ntlm认证例子

    以下是一个简单的Axis2客户端代码示例,演示如何在调用Web服务时使用NTLM认证: ```java import org.apache.axis2.AxisFault; import org.apache.axis2.client.Options; import org.apache.axis2.client.Service...

    axis2 webservices 例子

    4. **创建Axis2客户端**:在客户端,我们需要使用Axis2来调用这个Web服务。首先,我们需要生成客户端 stubs。这可以通过Axis2的`wsdl2java`工具完成,给定服务的WSDL地址。 5. **使用客户端**:生成的客户端 stubs ...

    axis2客户端调用工程代码

    在IT行业中,Axis2是Apache软件基金会开发的一个用于构建Web服务和SOAP客户端的强大框架。它基于 Axis1,并提供了许多改进和新特性,使得在Java环境中处理Web服务变得更加简单。本篇将详细介绍如何在Axis2环境下编写...

    使用axis轻松调用Webservice

    标题“使用axis轻松调用Webservice”涉及到的是在IT领域中如何通过Apache Axis工具来便捷地与Web服务进行交互。Apache Axis是一个开放源代码的Java框架,它允许开发者创建、部署和使用Web服务。这个标题暗示了我们将...

Global site tag (gtag.js) - Google Analytics