`

webservice学习二之(2)axis2客户端方式开发总结(附件含有项目)

阅读更多
一、首先创建webservice客户端项目webservice_client
   1、目录
    
    2、将所需jar包括到lib项目lib目录下
二、开发webservice客户端
   1、开发客户端代码。如下:
    com.smartdot.webservice.WebserviceClient
/**
 *
 *  This is a part of the smartdot cpms system.
 *  Copyright (C) 2008-2009 Smartdot Corporation
 *  All rights reserved.
 *
 *  Licensed under the Smartdot private License.
 *  Created on 2009-4-22
 *  @author YangLin
**/

package com.smartdot.webservice;


import java.util.Iterator;

import javax.xml.namespace.QName;

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.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.client.ServiceClient;

import com.smartdot.util.OMElementUtils;

/**
 * webservice客户端
 * @author YangLin
 *
 */
public class WebserviceClient {

	public static void main(String[] args) throws Exception {
		/*****targetEPR指定打包的Service(.aar文件)在容器中的物理位置*******/
		EndpointReference targetEPR = new EndpointReference(
		"http://localhost:8080/webservice_portal/services/APIWebService");
		try{
			//生成一个options对象然后把前面的地址放进去。
			  Options options = new Options();
			  options.setTo(targetEPR);
			  ServiceClient sender = new ServiceClient();
		      sender.setOptions(options);
		      System.out.println("webservice start");
		      OMElement sayHello = doSetOMElement();
		      OMElement result = sender.sendReceive(sayHello);
		      System.out.println("webservice end");
		      //到目前为止,已经将客户端信息发送到服务器端,并且接收webservice服务器返回的值。
		      System.out.println(result);
		      /**
		       * 分两种方式解析OMElement对象,并且当前对象格式必须是<Z><A>b</A><B>b</B></Z>
		       * 如果不是这样格式,则用result.getFirstElement(),进行提取,知道是上述格式。
		       */

		      OMElement firstElement=result.getFirstElement();
		      System.out.println("firstElement="+firstElement);
		      //第二种方式直接查找匹配子节点name属性
		      OMElement childElement=firstElement.getFirstChildWithName(new QName("state"));
		      System.out.println("第二种方式="+childElement.getText());
		     
		      //第一种方式遍历子节点对象OMElement,集合Iterator存放的内容是<A>a</A><B>b</B>
		      Iterator  it=firstElement.getChildElements();
		      while(it.hasNext()){
		    	  OMElement childs=(OMElement)it.next();
		    	  if(childs.getLocalName().equals("state")){
		    		  System.out.println("第一种方式="+childs.getText());
		    	  }
		      }
		}catch(Exception e){
			e.printStackTrace();
		}
	}

	/**
	 *创建调用webservice接口所需的参数OMElement对象。
	 * @return
	 */
	public static OMElement doSetOMElement(){
		/************创建调用webservice接口所需的参数OMElement对象*************/
		 OMFactory fac=OMAbstractFactory.getOMFactory();
		 OMNamespace omNs=fac.createOMNamespace("", "");
		//method中包含了需要调用的web service的方法名称,其中updatePeople就是其中的一个方法
		 OMElement method=fac.createOMElement("receiveUser",omNs);
		 String xmlInfo = "<people><name>yanglin</name><password>smartdot</password></people>";
		 OMElement content=new OMElementUtils().toOMElement(xmlInfo,"utf-8");
		 method.addChild(content);
		 return method;	
	}
}


2、编写字符串转换成OMElement对象公共类,
com.smartdot.util.OMElementUtils
/**
 *
 *  This is a part of the smartdot cpms system.
 *  Copyright (C) 2008-2009 Smartdot Corporation
 *  All rights reserved.
 *
 *  Licensed under the Smartdot private License.
 *  Created on 2009-4-22
 *  @author YangLin
 **/

package com.smartdot.util;

import java.io.ByteArrayInputStream;

import org.apache.axiom.om.OMElement;
import org.apache.axiom.om.impl.builder.StAXOMBuilder;

public class OMElementUtils {

	// 将xml字符创解析成OMElement对象。
	public  OMElement toOMElement(String xmlStr, String encoding) {
		OMElement xmlValue;
		try {
			xmlValue = new StAXOMBuilder(new ByteArrayInputStream(xmlStr
					.getBytes(encoding))).getDocumentElement();
			return xmlValue;
		} catch (Exception e) {
			return null;
		}
	}
}


到此为止,webservice客户端已经开发完毕,以上代码注释均是自己理解的,如果有什么不对的地方请指教。谢谢!!!
  • 大小: 3 KB
分享到:
评论
4 楼 lovin_fang 2012-04-03  
非常感谢楼主啊~~~
3 楼 波斯鼠 2011-12-08  
太感谢了,正好学习学习
2 楼 hngslifeng 2010-11-12  
非常好,谢谢
1 楼 jelver 2010-01-28  
写得挺详细,这么多人看了,都不回个贴,太不厚道了

相关推荐

    webservice学习二之(1)axis2服务器端方式开发总结(附件含有项目)

    这篇博客文章“webservice学习二之(1)axis2服务器端方式开发总结”可能涵盖了如何使用Axis2来创建和配置服务器端Web服务的详细步骤。 首先,了解Axis2的基础概念是至关重要的。Axis2是基于SOAP(Simple Object ...

    利用Axis2实现WebService开发与部署

    【标题】:“利用Axis2实现WebService开发与部署” 【描述】:“利用Axis2实现WebService开发与部署-3中方法进行开发” 【标签】:“WebService” 本文将详细讲解如何使用Apache Axis2框架来开发和部署Web ...

    WebService大讲堂之Axis2

    Axis2提供了对附件的处理机制,能够将二进制数据编码为SOAP消息中的附件,从而实现二进制数据的有效传输。 九、会话(Session)管理 在某些Web服务应用中,需要管理用户的会话状态。Axis2提供了会话管理机制,允许...

    用AXIS2开发WebService

    4. **SOAP和MTOM/XOP支持**:AXIS2允许发送和接收带有附件的SOAP消息,通过MTOM(Message Transmission Optimization Mechanism)和XOP(XML-binary Optimized Packaging)技术,有效地处理大型二进制数据。...

    axis2-1.7.7 eclipse的webservice开发插件

    标题中的“axis2-1.7.7 eclipse的webservice开发插件”指的是针对Eclipse IDE的Axis2版本1.7.7的Web服务开发工具。这个插件专为Eclipse设计,目的是帮助Java开发者利用Axis2框架快速构建Web服务。1.7.7是该插件的一...

    基于Axis编写webservice服务端和客户端时需要的jar包整理

    它提供了一种与SOAP交互的简单方式,使得开发Web服务客户端和服务端更加方便。 5. **saaj-api.jar**: SOAP with Attachments API for Java (SAAJ) 是处理SOAP消息中附件的标准API。它允许在SOAP消息中附加非文本...

    java版WebService生成客户端和服务端的实例

    本实例将详细讲解如何使用Apache Axis1.4工具来生成Java版的WebService服务端和客户端。 首先,让我们理解WebService的基本概念。WebService是一种基于HTTP协议的网络服务,它通过SOAP(Simple Object Access ...

    WebService Axis客户端调用接口需要用到的jar包

    WebService Axis是Apache软件基金会开发的一款基于Java的Web服务框架,它允许开发者创建和部署Web服务。在使用Axis作为客户端调用Web服务接口时,需要依赖一系列的jar包来支持通信和处理数据。以下是对这些关键jar包...

    利用axis开发webservice使用的jar包

    Axis是Apache软件基金会开发的一个开源工具,专门用于创建和使用Web服务。本文将详细介绍如何利用Axis开发Web服务,并探讨其使用的jar包。 首先,我们要理解Axis的核心功能。Axis提供了一套完整的Java API,使得...

    Java的webservice需要的axis2的所有jar包

    在开发过程中,将上述jar包添加到项目的类路径中,确保了Axis2的正确运行。需要注意的是,不同版本的Axis2可能会有不同的依赖库,因此使用时应根据具体项目需求选择匹配的版本。同时,及时更新这些库可以保持与最新...

    axis2 webservice jar包

    总结,Axis2是一个功能丰富的Web服务开发平台,其提供的jar包是构建和运行Web服务的关键。通过理解其架构和组件,开发者可以高效地利用这些工具来创建高性能、高度交互的Web服务。在实际开发中,根据项目需求选择...

    Axis1发布webservice服务

    Axis1是Apache组织开发的一个开源Java Web Service框架,主要用于创建和部署Web服务。它允许开发者在Java平台上构建符合WS-I(Web Services Interoperability Organization)基本Profile标准的Web服务。本项目是一个...

    利用AXIS调用webservice所需JAR包

    在IT行业中,Web服务是应用程序之间进行通信的一种标准方法,而WebService API的实现之一就是Apache Axis。本篇文章将深入探讨如何利用AXIS调用WebService,以及所需的JAR包及其作用。 首先,理解AXIS的基本概念至...

    webservice axis免费包

    这个包通常包含了Axis的所有必需组件,包括 Axis服务器、客户端库、文档和示例,让开发者可以在自己的项目中免费使用和学习Web服务技术。 描述中提到的"2.0版本是基于多语言的,有Java c++",意味着Axis 2.0不仅...

    详解axis调用webservice实例

    标题中的“详解axis调用webservice实例”表明我们将探讨如何使用Apache Axis库来调用Web服务。Apache Axis是一个开源工具,它允许Java开发者创建、部署和使用Web服务。在这个实例中,我们会有机会看到实际的Java代码...

    使用axis开发webservice使用的jar包

    在开发过程中,你可能还需要对Axis的配置文件(axis2.xml)进行调整,以满足特定的部署需求,如设置端口号、添加自定义模块等。同时,为了保证安全性,可以使用HTTPS和WS-Security标准来加密通信。 总之,使用Apache ...

    java_webservice_axis2简单开发实例借鉴.pdf

    10. **附件与MIME支持**:如果服务需要处理二进制数据,可以利用Axis2对SOAP附件和MIME的支持。 通过以上步骤,我们就成功地使用Axis2在Java环境中开发了一个简单的Web Service。随着对Axis2框架理解的深入,我们...

Global site tag (gtag.js) - Google Analytics