基于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的Web服务实现示例,包括服务端创建服务和客户端调用服务的所有必要组件。通过学习和理解这些文件,开发者可以更好地掌握如何在实际项目中利用Apache Axis2构建和使用...
axis2客户端调用axis1服务接口 调用方式 使用RPC方式调用WebService,为了防止冲突可以增加 // 与weblogic的lib冲突配置 System.setProperty("javax.xml.stream.XMLInputFactory", ...
在IT行业中,Axis2是Apache软件基金会开发的一个用于构建Web服务和Web服务客户端的框架,主要基于Java语言。本文将详细讲解如何使用Axis2来发布Web服务以及如何生成客户端代码来调用这些服务。 首先,让我们了解...
使用axis2创建webservice步骤以及客户端调用service服务代码,如何编写和发布WebService,如何使用services.xml配置文件发布,如何用Java实现调用WebService的客户端程序等等
用AXIS2作为客户端调用webService的demo:本人亲测可用,eclipse工程java项目包含完整代码和完整jar包, 只要用eclipse导入项目即可,运行控制台显示success或者false字符串,说明OK。
总的来说,使用Axis2客户端调用WebService接口是一种常见的开发实践,通过精简jar包可以优化项目的体积,提高部署效率。理解这个过程并掌握如何精简jar包,对于任何涉及到Web服务的开发工作都是十分有益的。
之前webservice客户端调用,使用RPC客戶端接口调用方法,但发现此种调用方式针对携参方式并不适用。最后经过多种方式测试选择了OMFactory......调用。经测试好用
java axis客户端调用webservice,可应用于ofbiz框架。 解决网络上共享代码两次调用后会出现timeout的BUG
【标题】基于Axis的Web Service客户端调用 在IT领域,Web Service是一种通过网络进行通信的标准协议,它允许不同系统间的应用程序互相交换数据。而Apache Axis是Java平台上的一个开源工具,专门用于创建和部署Web ...
当涉及到“axis2客户端调用服务端,带用户身份认证”时,我们主要关注的是如何在 Axis2 客户端中添加安全机制,确保只有经过验证的用户能够访问服务。 首先,理解身份认证是网络安全的基础。在Web服务中,通常采用...
标题中的“在自己的项目中利用axis2+spring发布webservice与客户端调用包括session”指出的是一个关于在实际项目开发中如何使用Axis2和Spring框架来发布Web服务,并且涉及了Web服务客户端调用以及会话(session)...
本方法是用axis1.4技术,实现java客户端调用webservice。已经可实现过可行的,如果不行可加我QQ号302633进行详细解析。
- **WSDL生成**: Axis2会自动生成WSDL(Web服务描述语言),这是服务的接口规范,用于客户端调用。 3. **客户端开发** - **WSDL第一**: 客户端通常基于服务的WSDL来生成客户端代码,轴心提供wsdl2java工具,可以...
描述中的“一个基于axis的webservice接口例子”进一步明确了这是一个基于Apache Axis2的Web服务接口实现。Axis2是Apache SOAP(Simple Object Access Protocol)项目的继任者,它不仅支持SOAP,还支持RESTful风格的...
要深入学习这个主题,可以参考博客“WebService:Axis客户端调用需要身份验证的CXF服务”。这个博客很可能详细解释了如何在实际代码中实现上述步骤,包括如何配置Axis客户端、如何处理认证头以及如何与CXF服务进行...
【基于Axis2的Web服务详解】 ...总结,基于Axis2的Web服务提供了强大且灵活的Web服务解决方案,适合企业级应用的开发。了解并掌握Axis2的使用,能够帮助开发者更有效地构建和维护Web服务,实现不同系统之间的无缝集成。
本文将详细介绍如何利用MyEclipse 8.5集成开发环境及其内置的Axis2插件来构建WebService服务,并演示如何通过客户端调用这些服务。 #### 二、准备工作 首先,确保您的开发环境中已经安装了以下软件: 1. Java ...
本教程将讲解如何使用Spring Boot集成Apache CXF(一个强大的Java Web Service框架)来构建服务端,并探讨两种Java客户端调用Web Service接口的方法。 首先,我们需要理解Spring Boot与CXF的整合。Spring Boot通过...
总结起来,"axis开发webservice客户端"涉及到理解SOAP协议,掌握WSDL的用途,熟悉使用Axis工具生成客户端代码,以及如何在实际应用中调用Web服务并处理可能出现的异常。此外,了解和使用Apache Axis相关的库文件也至...