`

axis调用webservice 返回xml解析

 
阅读更多
import java.io.IOException;
import java.io.StringReader;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.xml.sax.InputSource;

public class Test3 {
	
	public static void main(String[] args) {
		System.out.println("================++++++++++===========");
		try {
			Service service = new Service();
			String url = "http://*****:8004/bianmin.asmx";
			System.out.println("DMZ-url=========="+url);
			String soapaction = "http://www.bluebutterfly.cn/";
			String funcname = "ShowInfoByCardIDName";
			Call call = (Call) service.createCall();
			call.setTargetEndpointAddress(url);
			call.setOperationName(new QName(soapaction, funcname)); // 设置要调用哪个方法
			call.addParameter(
					new QName(soapaction, "name"), // 设置要传递的参数
					org.apache.axis.encoding.XMLType.XSD_STRING,
					javax.xml.rpc.ParameterMode.IN);
			call.addParameter(
					new QName(soapaction, "cardID"), // 设置要传递的参数
					org.apache.axis.encoding.XMLType.XSD_STRING,
					javax.xml.rpc.ParameterMode.IN);
			call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);// 返回类型

			call.setUseSOAPAction(true);
			call.setSOAPActionURI(soapaction + funcname);
			String uname  = "*涛";
			String cardID = "37***11";
			String v = (String) call.invoke(new Object[] { uname, cardID});// 调用方法并传递参数
			System.out.println(v);
			System.out.println(xmlElements(v));
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		
	}
	
	/**
	 * 解析xml字符串返回一个Map
	 * 
	 * @param xmlDoc
	 * @return Map
	 */
	public static Map xmlElements(String xmlDoc) {
		Map map = new HashMap();
		// 创建一个新的字符串
		StringReader read = new StringReader(xmlDoc);
		// 创建新的输入源SAX 解析器将使用 InputSource 对象来确定如何读取 XML 输入
		InputSource source = new InputSource(read);
		// 创建一个新的SAXBuilder
		SAXBuilder sb = new SAXBuilder();
		try {
			// 通过输入源构造一个Document
			Document doc = sb.build(source);
			// 取的根元素
			Element root = doc.getRootElement();
			// 得到根元素所有子元素的集合
			List jiedian = root.getChildren();
			// 获得XML中的命名空间(XML中未定义可不写)
			Element et = null;
			for (int i = 0; i < jiedian.size(); i++) {
				et = (Element) jiedian.get(i);// 循环依次得到子元素
				map.put(et.getName(), et.getText());
			}
		} catch (JDOMException e) {
			e.printStackTrace();
			System.out.println("出错");
		} catch (IOException e) {
			e.printStackTrace();
			System.out.println("出错");
		}
		read.close();
		return map;
	}
}	    

 

分享到:
评论

相关推荐

    webservice远程调用,返回数据生成xml文件,并通过SAX解析出来

    webservice远程调用,返回String数据并生成xml文件到本地工程,在通过SAX解析器把数据解析出来。这是webservice应用的一个简单的例子。根据该例子的思想,可以实现很多功能了。例如把client工程的sayHello方法改为...

    axis客户端调用webservice

    java axis客户端调用webservice,可应用于ofbiz框架。 解决网络上共享代码两次调用后会出现timeout的BUG

    java调用.net写的返回值为dataset的webservice(2)实例项目

    网上的调用例子太多了,有的要用cmd来解析webserive,有的没有包,有的代码报错。学习及测试花了4天,终于完成了。 1直接把项目放到 myeclipse的工作区间加载就行。然后將axis-1_4包下的lib文件夹里的包 都加載到...

    Axis2调用Webservice最全的Jar包

    里面包含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包

    Axis2发布和调用webservice

    描述了axis2如何调用webservice,jar齐全,首先保证webservice的url能正常访问,下载资源后直接运 行com.axis2.test.TestAxis2的main方法即可。 axis2功能十分强大,可接受方法中返回任何类型,比如List, Set,...

    使用axis2创建webservice步骤以及客户端调用service服务代码

    使用axis2创建webservice步骤以及客户端调用service服务代码,如何编写和发布WebService,如何使用services.xml配置文件发布,如何用Java实现调用WebService的客户端程序等等

    axis2客户端调用axis1服务接口

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

    axis2 webservice 客户的调用所需要的jar

    activation-1.1.jar axiom-api-1.2.13.jar axiom-impl-1.2.13.jar axis2-adb-1.6.2.jar axis2-adb-codegen-1.6.2.jar axis2-codegen-1.6.2.jar ...XmlSchema-1.4.7.jar neethi-3.0.2.jar mail-1.4.jar

    java axis调用第三方webservice程序demo

    1、java调用第三方webservice接口时,需要的最少jar包 2、提供一个简单的demo实例供参考,包括将类转化为XML,以及将XML运用axis上传到服务器

    axis2 webservice入门手册(JS,Java,PHP调用实例源码)www.sietoo.com出品

    最近接触到一个银行接口的案子,临时需要用到axis2 webservice。自己现学现总结的一些东西,留给...①采用名为 AXIOM(AXIs Object Model)的新核心 XML 处理模型,利用新的XML解析器提供的灵活性按需构造对象模型。

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

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

    axis-jaxrpc

    javax/xml/rpc/ServiceException异常,axis调用webservice。

    SAP&Java的Webservice实例

    在 Java 中,可以使用 Eclipse 和 Axis2 工具来创建 Webservice 客户端,然后使用该客户端来调用 SAP 的 Webservice。 首先,需要下载Axis2 的 jar 包,然后在 Eclipse 中创建一个新的 Java 项目,添加 Axis2 的 ...

    webservice Axis2教程

    当然,也可以象第一个项目一样,直接通过HTTP SOAP协议调用WebService。在第二个项目中同时使用了这两种方式来实现。这两种调用方式分别封装在两组Model类中。可以通过配置 struts.xml文件来提定使用哪组模型类...

    axis1.4 部署解析webservie

    1.TOMCAT+AXIS的安装配置 首先机子上应该安装JDK1.5版本以上(带有XML解析包)。我这里是1.5.0.6 从APACHE的官方网站(www.apache.org)下载TOMCAT安装软件。下载版本要在4.0以上。这里用的是5.0版本。安装完后,...

    WebService大讲堂之Axis2

    WebService大讲堂之Axis2(8):异步调用WebService ................................................................................... 28 WebService大讲堂之Axis2(9):编写Axis2模块(Module) .................

    Java调用asmx(WebService)

    java通过webservice调用asmx的实例。

    Java编程Webservice指定超时时间代码详解

    主要介绍了Java编程Webservice指定超时时间代码详解,简单介绍了webservice,然后分享了通过使用JDK对Webservice的支持进行Webservice调用实现指定超时时间完整示例,具有一定借鉴价值,需要的朋友可以参考下。

    Axis2教程 包含描述目录的内容

    WebService大讲堂之Axis2系列教程 1. 用POJO实现0配置的WebService 2. 复合类型数据的传递 ... 异步调用WebService 9. 编写Axis2模块(Module) 10. 使用soapmonitor模块监视soap请求与响应消息

    axis2-1.4.1及教程

    1):用POJO实现0配置的WebService 2):复合类型数据的传递 3):使用services.xml文件发布WebService ...8):异步调用WebService 9):编写Axis2模块(Module) 10):使用soapmonitor模块监视soap请求与响应消息

Global site tag (gtag.js) - Google Analytics