`
从百草园到三味书屋
  • 浏览: 52282 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

基于axis2的WebService服务开发与客户端调用

 
阅读更多
基于axis2的WebService服务开发与客户端调用
目录
一、环境搭建	2
1.1.eclipse集成axis	2
1.2.下载axis2工程包	2
1.3.发布第2步下载的war	2
二、WebService服务开发	3
2.1 服务端程序开发	3
2.2 服务部署	3
三、基于Axis2的WebService客户端调用	4
 
	今天花了一天的时间来研究如何利用axis2来开发webservice服务以及如何调用webservice服务。虽然期间碰到过很多莫名其妙的问题,但终归是调用成功了,也算是差强人意吧,虽然毕业半年了,但是一直都没有接触过webservice,也没有牵涉到这一块的实际开发任务,所以到现在,对webservice我还是一个门外汉。
	本文比较详细和肤浅地阐述了如何开发webservice服务和调用webservice服务。
一、环境搭建
由于我是基于axis2来开发的,所以,首先要搭建运行webservice服务环境。
1.1.eclipse集成axis
下载axis2-eclipse-service-archiver-wizard.zip和axis2-eclipse-codegen-wizard.zip两个压缩包,将其解压后,把Axis2_Service_Archiver_xxx和Axis2_Codegen_Wizard_xxx两个文件夹复制到eclipse下的plugin目录下。重新启动eclipse,点击File->New->Other查看列表中是否有Axis2 Wizards项。如果出现类似下图所示,则表明集成成功。
 
图1.1 eclipse集成axis2插件
1.2.下载axis2工程包
可以直接到axis2官网上去下载war工程。如下图(注意,下载WAR Dis…)
 图1.2 axis2 war发布包下载
1.3.发布第2步下载的war
具体是将下载后的axis2-1.6.1-war.zip解压缩,将里面的axis2.war复制到tomcat的webapp目录下,启动tomcat服务,浏览器输入http://localhost:8088/axis2/访问axis2服务,如果出现下图所示界面,则说明axis2服务包安装成功。
 
图1.3 访问axis2服务
二、WebService服务开发
2.1 服务端程序开发
	在这里为了测试方便,我写了一个简单的java类,如下所示:
 
2.1 服务端程序开发
这里是一个简单的类,只提供了模拟操作用户的两个方法findUser和editUser。
2.2 服务部署
	有两种部署方式,在这里先说第一种,也是最简单的并且是我测试成功的一种将上面的类编译后的class文件拷贝到tomcat下的webapps\axis2\WEB-INF\pojo里面,如果pojo文件夹不存在,则新建一个。完成后,在tomcat服务已启动的前提下,打开浏览器访问地址:
http://localhost:8088/axis2/services/listServices,发现多了一个服务
 
图2.2 成功部署服务
则说明webservice服务部署成功,可以看到两个可调用的函数对应刚才类中的两个函数。
	这种部署方式优点是比较简单,缺点是类不能有包名存在,例如package com.fpi.test之类的,如果有则测试失败,具体原因我没去查,网上也说不能有包名。
	第二种部署方式是通过axis2插件来半自动部署。具体操作流程网上很多,也很详细。但是我一直都没有测试成功,主要是卡在第五步,无法显示可用的类名称。
三、基于Axis2的WebService客户端调用
	同样,在这里我沿用前面的webservice服务类,写了一个简单的调用类,当然也可以通过Axis2插件自动完成,调用方法、原理等网上很多。
	随便新建一个类,编写代码如下:
package us;

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 org.apache.axis2.rpc.client.RPCServiceClient;


/**
 * <p>调用webservice的客户端程序,依赖的包列表</p>
 * <ul>
 * 	<li>activation-xx.jar</li>
 * 	<li>axiom-api-xx.jar</li>
 * 	<li>axis2-adb-xx.jar</li>
 * 	<li>axis2-adb-codegen-xx.jar</li>
 * 	<li>axis2-java2wsdl-xx.jar</li>
 * 	<li>axis2-kernel-xx.jar</li>
 * 	<li>axis2-transport-http-xx.jar</li>
 *  <li>axis2-transport-local-xx.jar</li>
 * 	<li>commons-codec-xx.jar</li>
 * 	<li>commons-httpclient-xx.jar</li>
 * 	<li>commons-logging-xx.jar</li>
 * 	<li>httpcore-xx.jar</li>
 * 	<li>wsdl4j-xx.jar</li>
 * 	<li>xmlschema-xx.jar</li>
 * 	<li>mail-xx.jar</li>
 * 	<li>neethi-xx.jar</li>
 * 	<li>axis2-transport-local-xx.jar</li>
 * 	<li>axiom-impl-xx.jar</li>
 * </ul>
 * @author meiquan_yang
 * @created 2012-01-16
 */
public class UserServiceClient {

	public static void main(String[] args) throws Exception {
		

		String url = "http://localhost:8088/axis2/services/UserService";

		String namespace = "http://ws.apache.org/axis2";
		
		EndpointReference epr = new EndpointReference(url);

		OMFactory factory = OMAbstractFactory.getOMFactory();
		
		OMNamespace ns = factory.createOMNamespace(namespace,"xsd");
		
		OMElement ne = factory.createOMElement("id",null);
		
		ne.addChild(factory.createOMText(ne,"1"));
		
		OMElement method = factory.createOMElement("findUser",ns);
		
		method.addChild(ne);
		
		ServiceClient sender = new ServiceClient();
		
		Options options = new Options();
        options.setAction("findUser");
        options.setTo(epr);
        
        sender.setOptions(options);
        
		OMElement result = sender.sendReceive(method);
		
		System.out.println(result.toString());
	}
}

运行结果:
<ns:findUserResponse xmlns:ns="http://ws.apache.org/axis2">
<return>{username:yangmeiquan,password:123456}</return>
</ns:findUserResponse>

分享到:
评论

相关推荐

    基于axis2实现的webservice简单实现(客户端+服务端)。

    总的来说,这个压缩包提供了一个完整的基于Axis2的Web服务实现示例,包括服务端创建服务和客户端调用服务的所有必要组件。通过学习和理解这些文件,开发者可以更好地掌握如何在实际项目中利用Apache Axis2构建和使用...

    axis2客户端调用axis1服务接口

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

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

    在IT行业中,Axis2是Apache软件基金会开发的一个用于构建Web服务和Web服务客户端的框架,主要基于Java语言。本文将详细讲解如何使用Axis2来发布Web服务以及如何生成客户端代码来调用这些服务。 首先,让我们了解...

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

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

    AXIS2作为客户端调用webService的demo

    用AXIS2作为客户端调用webService的demo:本人亲测可用,eclipse工程java项目包含完整代码和完整jar包, 只要用eclipse导入项目即可,运行控制台显示success或者false字符串,说明OK。

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

    总的来说,使用Axis2客户端调用WebService接口是一种常见的开发实践,通过精简jar包可以优化项目的体积,提高部署效率。理解这个过程并掌握如何精简jar包,对于任何涉及到Web服务的开发工作都是十分有益的。

    webservice-axis2客户端调用(多参).txt

    之前webservice客户端调用,使用RPC客戶端接口调用方法,但发现此种调用方式针对携参方式并不适用。最后经过多种方式测试选择了OMFactory......调用。经测试好用

    axis客户端调用webservice

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

    基于Axis的Web Service客户端调用

    【标题】基于Axis的Web Service客户端调用 在IT领域,Web Service是一种通过网络进行通信的标准协议,它允许不同系统间的应用程序互相交换数据。而Apache Axis是Java平台上的一个开源工具,专门用于创建和部署Web ...

    axis2客户端调用服务端,带用户身份认证

    当涉及到“axis2客户端调用服务端,带用户身份认证”时,我们主要关注的是如何在 Axis2 客户端中添加安全机制,确保只有经过验证的用户能够访问服务。 首先,理解身份认证是网络安全的基础。在Web服务中,通常采用...

    在自己的项目中利用axis2+spring发布webservice与客户端调用包括session

    标题中的“在自己的项目中利用axis2+spring发布webservice与客户端调用包括session”指出的是一个关于在实际项目开发中如何使用Axis2和Spring框架来发布Web服务,并且涉及了Web服务客户端调用以及会话(session)...

    java客户端调用webservice所调用的axis1.4包和方法调用

    本方法是用axis1.4技术,实现java客户端调用webservice。已经可实现过可行的,如果不行可加我QQ号302633进行详细解析。

    axis2的webService服务器端和客户端开发项目

    - **WSDL生成**: Axis2会自动生成WSDL(Web服务描述语言),这是服务的接口规范,用于客户端调用。 3. **客户端开发** - **WSDL第一**: 客户端通常基于服务的WSDL来生成客户端代码,轴心提供wsdl2java工具,可以...

    axis2webservice接口例子

    描述中的“一个基于axis的webservice接口例子”进一步明确了这是一个基于Apache Axis2的Web服务接口实现。Axis2是Apache SOAP(Simple Object Access Protocol)项目的继任者,它不仅支持SOAP,还支持RESTful风格的...

    WebService:Axis客户端调用需要身份验证的CXF服务

    要深入学习这个主题,可以参考博客“WebService:Axis客户端调用需要身份验证的CXF服务”。这个博客很可能详细解释了如何在实际代码中实现上述步骤,包括如何配置Axis客户端、如何处理认证头以及如何与CXF服务进行...

    基于axis2的webservice

    【基于Axis2的Web服务详解】 ...总结,基于Axis2的Web服务提供了强大且灵活的Web服务解决方案,适合企业级应用的开发。了解并掌握Axis2的使用,能够帮助开发者更有效地构建和维护Web服务,实现不同系统之间的无缝集成。

    myeclipse8.5使用axis2插件开发webservice服务并调用

    本文将详细介绍如何利用MyEclipse 8.5集成开发环境及其内置的Axis2插件来构建WebService服务,并演示如何通过客户端调用这些服务。 #### 二、准备工作 首先,确保您的开发环境中已经安装了以下软件: 1. Java ...

    springboot+webservice搭建webservice服务端及使用java客户端两种方式进行调用webservice接口

    本教程将讲解如何使用Spring Boot集成Apache CXF(一个强大的Java Web Service框架)来构建服务端,并探讨两种Java客户端调用Web Service接口的方法。 首先,我们需要理解Spring Boot与CXF的整合。Spring Boot通过...

    axis开发webservice客户端

    总结起来,"axis开发webservice客户端"涉及到理解SOAP协议,掌握WSDL的用途,熟悉使用Axis工具生成客户端代码,以及如何在实际应用中调用Web服务并处理可能出现的异常。此外,了解和使用Apache Axis相关的库文件也至...

Global site tag (gtag.js) - Google Analytics