一、首先创建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
分享到:
相关推荐
这篇博客文章“webservice学习二之(1)axis2服务器端方式开发总结”可能涵盖了如何使用Axis2来创建和配置服务器端Web服务的详细步骤。 首先,了解Axis2的基础概念是至关重要的。Axis2是基于SOAP(Simple Object ...
【标题】:“利用Axis2实现WebService开发与部署” 【描述】:“利用Axis2实现WebService开发与部署-3中方法进行开发” 【标签】:“WebService” 本文将详细讲解如何使用Apache Axis2框架来开发和部署Web ...
Axis2提供了对附件的处理机制,能够将二进制数据编码为SOAP消息中的附件,从而实现二进制数据的有效传输。 九、会话(Session)管理 在某些Web服务应用中,需要管理用户的会话状态。Axis2提供了会话管理机制,允许...
4. **SOAP和MTOM/XOP支持**:AXIS2允许发送和接收带有附件的SOAP消息,通过MTOM(Message Transmission Optimization Mechanism)和XOP(XML-binary Optimized Packaging)技术,有效地处理大型二进制数据。...
标题中的“axis2-1.7.7 eclipse的webservice开发插件”指的是针对Eclipse IDE的Axis2版本1.7.7的Web服务开发工具。这个插件专为Eclipse设计,目的是帮助Java开发者利用Axis2框架快速构建Web服务。1.7.7是该插件的一...
它提供了一种与SOAP交互的简单方式,使得开发Web服务客户端和服务端更加方便。 5. **saaj-api.jar**: SOAP with Attachments API for Java (SAAJ) 是处理SOAP消息中附件的标准API。它允许在SOAP消息中附加非文本...
本实例将详细讲解如何使用Apache Axis1.4工具来生成Java版的WebService服务端和客户端。 首先,让我们理解WebService的基本概念。WebService是一种基于HTTP协议的网络服务,它通过SOAP(Simple Object Access ...
WebService Axis是Apache软件基金会开发的一款基于Java的Web服务框架,它允许开发者创建和部署Web服务。在使用Axis作为客户端调用Web服务接口时,需要依赖一系列的jar包来支持通信和处理数据。以下是对这些关键jar包...
Axis是Apache软件基金会开发的一个开源工具,专门用于创建和使用Web服务。本文将详细介绍如何利用Axis开发Web服务,并探讨其使用的jar包。 首先,我们要理解Axis的核心功能。Axis提供了一套完整的Java API,使得...
在开发过程中,将上述jar包添加到项目的类路径中,确保了Axis2的正确运行。需要注意的是,不同版本的Axis2可能会有不同的依赖库,因此使用时应根据具体项目需求选择匹配的版本。同时,及时更新这些库可以保持与最新...
总结,Axis2是一个功能丰富的Web服务开发平台,其提供的jar包是构建和运行Web服务的关键。通过理解其架构和组件,开发者可以高效地利用这些工具来创建高性能、高度交互的Web服务。在实际开发中,根据项目需求选择...
Axis1是Apache组织开发的一个开源Java Web Service框架,主要用于创建和部署Web服务。它允许开发者在Java平台上构建符合WS-I(Web Services Interoperability Organization)基本Profile标准的Web服务。本项目是一个...
在IT行业中,Web服务是应用程序之间进行通信的一种标准方法,而WebService API的实现之一就是Apache Axis。本篇文章将深入探讨如何利用AXIS调用WebService,以及所需的JAR包及其作用。 首先,理解AXIS的基本概念至...
这个包通常包含了Axis的所有必需组件,包括 Axis服务器、客户端库、文档和示例,让开发者可以在自己的项目中免费使用和学习Web服务技术。 描述中提到的"2.0版本是基于多语言的,有Java c++",意味着Axis 2.0不仅...
标题中的“详解axis调用webservice实例”表明我们将探讨如何使用Apache Axis库来调用Web服务。Apache Axis是一个开源工具,它允许Java开发者创建、部署和使用Web服务。在这个实例中,我们会有机会看到实际的Java代码...
在开发过程中,你可能还需要对Axis的配置文件(axis2.xml)进行调整,以满足特定的部署需求,如设置端口号、添加自定义模块等。同时,为了保证安全性,可以使用HTTPS和WS-Security标准来加密通信。 总之,使用Apache ...
10. **附件与MIME支持**:如果服务需要处理二进制数据,可以利用Axis2对SOAP附件和MIME的支持。 通过以上步骤,我们就成功地使用Axis2在Java环境中开发了一个简单的Web Service。随着对Axis2框架理解的深入,我们...