`

使用Axis开发WebService程序

阅读更多

所谓Web Service就是客户端以标准的SOAP消息将服务请求发给服务提供者,不论服务提供者用什么样的技术,Java、EJB、或者.NET执行相应的程序得到结果,然后将结果以SOAP消息返回给服务请求者。以axis为例,创建一个简单的Web Service

首先到http://ws.apache.org/axis/上去下载最新的axis版本。最新版本是axis-src-1_4.zip

NEWS (April 22, 2006): Axis 1.4 Final is now available!

 

第一步:创建WebService项目,命名为Webservice_Begin

解压axis-src-1_4.zip后,拷贝lib目录下最基本的jar包至项目WEB-INF/lib目录下,如下列表:

axis.jar

commons-discovery-0.2.jar

commons-logging-1.1.jar

jaxrpc.jar

mailapi_1_3_1.jar

wsdl4j-1.5.1.jar

junit-4.9-SNAPSHOT-20100512-0041.jar

 

第二步:创建WebService服务器端接口和实现类

package com.unis.p2p.server;
/**
 * WebService服务器端业务逻辑接口
 * 
 * @author Posey 2010-12-17
 */
public interface Hello {
	
	/**
	 * 接口方法:接收客户端WebService请求
	 * 
	 * @author Posey 2010-12-17
	 * @param message
	 * @return
	 */
	public String executeTaskList(String message);

}

 

package com.unis.p2p.server;

/**
 * WebService服务器端业务逻辑实现类
 * @author Posey 2010-12-17
 *
 */
public class HelloImpl implements Hello {

	/**
	 * 接收客户端WebService请求,具体执行相关操作
	 * 
	 * @author Posey 2010-12-17
	 */
	public String executeTaskList(String message) {
		return "OK|调用成功! " + message;
    }

}

 

第三步:修改WEB-INF/web.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

	<!-- ********************************************** -->
	
	<!-- WebService核心处理类 -->
	<servlet>
		<servlet-name>AxisServlet</servlet-name>
		<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
	</servlet>

	<servlet-mapping>
		<servlet-name>AxisServlet</servlet-name>
		<url-pattern>/services/*</url-pattern>
	</servlet-mapping>
	
	<!-- ********************************************** -->

	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	
</web-app>

 

第四步:创建WebRoot/WEB-INF/server-config.wsdd文件,定义服务的名称,具体的实现类,以及发布的方法和属性等等

<?xml version="1.0" encoding="UTF-8"?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

	<handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper" />

	<service name="executeTask" provider="java:RPC">
		<parameter name="className" value="com.unis.p2p.server.HelloImpl" />
		<parameter name="allowedMethods" value="executeTaskList" />
	</service>

	<transport name="http">
		<requestFlow>
			<handler type="URLMapper" />
		</requestFlow>
	</transport>
	
</deployment>

 

第五步:启动应用服务器,发布Web Service服务。

地址栏输入:http://127.0.0.1:8080/Webservice_Begin/services回车,如果没有错误提示,则恭喜你,你的Web Service已经发布成功。

点击wsdl,还可以看到具体的wsdl的配置信息如下:

  <?xml version="1.0" encoding="UTF-8" ?> 
- <wsdl:definitions targetNamespace="http://127.0.0.1:8080/Webservice_Begin/services/executeTask" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://127.0.0.1:8080/Webservice_Begin/services/executeTask" xmlns:intf="http://127.0.0.1:8080/Webservice_Begin/services/executeTask" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <!-- 
WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)

  --> 
- <wsdl:message name="executeTaskListResponse">
  <wsdl:part name="executeTaskListReturn" type="soapenc:string" /> 
  </wsdl:message>
- <wsdl:message name="executeTaskListRequest">
  <wsdl:part name="message" type="soapenc:string" /> 
  </wsdl:message>
- <wsdl:portType name="HelloImpl">
- <wsdl:operation name="executeTaskList" parameterOrder="message">
  <wsdl:input message="impl:executeTaskListRequest" name="executeTaskListRequest" /> 
  <wsdl:output message="impl:executeTaskListResponse" name="executeTaskListResponse" /> 
  </wsdl:operation>
  </wsdl:portType>
- <wsdl:binding name="executeTaskSoapBinding" type="impl:HelloImpl">
  <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> 
- <wsdl:operation name="executeTaskList">
  <wsdlsoap:operation soapAction="" /> 
- <wsdl:input name="executeTaskListRequest">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://server.p2p.unis.com" use="encoded" /> 
  </wsdl:input>
- <wsdl:output name="executeTaskListResponse">
  <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://127.0.0.1:8080/Webservice_Begin/services/executeTask" use="encoded" /> 
  </wsdl:output>
  </wsdl:operation>
  </wsdl:binding>
- <wsdl:service name="HelloImplService">
- <wsdl:port binding="impl:executeTaskSoapBinding" name="executeTask">
  <wsdlsoap:address location="http://127.0.0.1:8080/Webservice_Begin/services/executeTask" /> 
  </wsdl:port>
  </wsdl:service>
  </wsdl:definitions>

 

第六步:创建WebService客户端测试类

/Webservice_Begin/test/com/unis/p2p/client/WebServiceTest.java

package com.unis.p2p.client;

import java.net.URL;   

import org.apache.axis.client.Call;   
import org.apache.axis.client.Service;   
import org.junit.Test;

/**
 * 类说明:Client端测试类,发出请求
 * @author Posey 2010-12-17
 *
 */
public class WebServiceTest {
	
	@Test
	public void testExecuteTask() throws Exception {
		String res = "";
		
		String ss = "ERR|2352|5683|2235|8428";
		String[] str = ss.split("\\|");
		String tempMsg = "";
		for (int i = 1; i < str.length; i++) {
			tempMsg += str[i] + ",";
		}
		tempMsg = tempMsg.substring(0, tempMsg.length()-1);
		
		//调接口
		res = this.executeTask("http://127.0.0.1:8080/Webservice_Begin/services/executeTask", 
								"executeTaskList", 
								new Object[]{ tempMsg });
		
		System.out.println(res);	//输出结果
	}

	//核心处理方法
	private synchronized String executeTask(String url, String method, Object[] args) throws Exception {
		
		// 创建Service实例
		Service service = new Service();
		
		// 通过Service实例创建Call实例
		Call call = (Call) service.createCall();
		
		// 将WebService的服务路径加入到Call实例中,并为Call设置服务的位置
		URL webServiceUrl = new URL(url);
		call.setTargetEndpointAddress(webServiceUrl);
		
		// 调用WebService方法
		call.setOperationName(method);
		
		// 调用WebService传入参数
		String result = (String) call.invoke(args);
		
		return result;
	}
	
}

  

第七步:Run As - JUnit Test,执行成功
输出结果:OK|调用成功! 2352,5683,2235,8428

分享到:
评论

相关推荐

    axis 开发webservice经典入门例子

    标题 "axis 开发webservice经典入门例子" 指向的是使用Apache Axis工具来创建和使用Web服务的基本教程。Apache Axis是开源的Java框架,它允许开发者轻松地在Java应用程序中构建和部署Web服务。本教程可能是为了帮助...

    使用axis开发webservice使用的jar包

    本篇文章将深入探讨如何使用Axis开发Web服务,并详细解释相关jar包的作用。 首先,让我们了解Web服务的基本概念。Web服务是一种通过互联网进行通信的应用程序,遵循W3C制定的SOAP(Simple Object Access Protocol)...

    Axis2WebService 源码

    Axis2 WebService是一个开源的、基于Java的Web服务框架,由Apache软件基金会开发。它提供了构建和部署Web服务以及处理SOAP消息的强大工具。这个源码包可能是为了帮助开发者深入理解Axis2的工作原理,或者用于自定义...

    eclipse+AXIS开发webservice.doc

    本文档主要介绍了如何使用Eclipse和AXIS框架开发和发布Web服务,以及进行客户端测试。以下是详细步骤和关键知识点: 1. **Eclipse插件安装**: - Eclipse提供了Web服务开发的插件,可以从官方网站下载WTP(Web ...

    Spring集成axis2实现webservice所用到的包

    在Java世界中,Spring框架以其强大的灵活性和可扩展性,被广泛用于构建企业级应用程序。当我们需要在Spring项目中提供Web服务时,Axis2是一个常用的工具,它是一个高效的Web服务引擎,支持SOAP 1.1和1.2,以及...

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

    【标题】中的“基于axis2实现的webservice简单实现(客户端+服务端)”表明了本文将探讨如何使用Apache Axis2框架来创建和消费Web服务。Apache Axis2是Apache软件基金会开发的一个Web服务引擎,它提供了高效且灵活的...

    Axis和WebService配置使用之Hello

    标题中的“Axis和WebService配置使用之Hello”表明我们将探讨如何在Java环境中使用Axis库来创建和使用Web服务,实现一个简单的“Hello World”示例。 Axis是一个开源的Java SOAP(简单对象访问协议)工具包,它允许...

    Axis实现webservice完整实例

    Axis 是 Apache 组织开发的 Java WebService 工具包,它简化了 WebService 的开发过程。Axis 支持 SOAP 1.1 和 1.2,以及 WSDL 1.1 标准,允许开发者快速创建服务端和客户端代码。 ### 3. Axis 服务端实现 - **...

    Axis开发WebService 指南

    本文将深入探讨如何利用Axis开发WebService,以及相关的技术要点。 首先,了解WebService的基础概念是至关重要的。WebService是一种基于开放标准(如XML、WSDL和SOAP)的互联网应用程序,它能够跨平台、跨语言地...

    AXIS入门指南-webservice

    本指南主要针对使用AXIS开发和消费Web服务的初级开发者,涵盖AXIS的基本概念、环境搭建、服务生成与调用等关键环节。 **1.3 词汇和缩略语** - **WebService**: 一种基于互联网的、可互相操作的软件服务。 - **AXIS*...

    axis发布webservice教程源代码

    Web服务是一种基于开放标准的软件架构,允许不同系统之间的应用程序通过互联网进行通信,而Axis是实现这一目标的一个强大工具。 【压缩包子文件的文件列表】: 1. `xx.bat` - 这可能是一个批处理文件,用于自动化...

    axis2开发webservice

    本文将深入探讨使用Axis2开发Web服务的相关知识点,包括Axis2的基础概念、环境搭建、服务创建与发布、Eclipse集成及详细教程。 1. Axis2基础概念: - Web服务:是一种通过HTTP协议进行通信的应用程序,使得不同...

    Java-tomcat-axis2开发webservice返回json数据

    标题“Java-tomcat-axis2开发webservice返回json数据”涉及的是使用Java、Tomcat服务器以及Axis2框架来创建Web服务,并返回JSON格式的数据。这是一个常见的技术组合,用于构建RESTful API或者提供服务化接口。下面...

    Axis开发WebService Helloworld实例

    在本实例中,我们将深入探讨如何使用Axis开发一个简单的"Hello World" WebService。这个教程是基于网上流行的一个文档,但原文档存在四处错误,我已经进行修正并经过Eclipse IDE的调试验证,确保其正确无误。 首先...

    Axis开发WebService实例.pdf

    ### Axis开发WebService实例知识点解析 #### 一、Axis概述与安装配置 - **Apache Axis简介**:Apache Axis是Apache组织提供的一个开源项目,用于在Java环境中实现WebService技术规范。它支持SOAP协议,并提供了...

    AXIS发布webservice

    AXIS发布WebService是一个在IT行业中常见的任务,尤其在企业级应用集成或Web服务开发中扮演着重要角色。AXIS是一个开放源码的Java库,它提供了用于创建、部署和使用Web服务的工具和API。本篇文章将深入探讨AXIS如何...

    Axis2开发webservice总结.doc

    【摘要】:本文档主要总结了使用Axis2框架开发Web服务的相关知识,包括Web服务技术介绍、开发流程、必要的开发前准备以及具体的开发实例。 【详细内容】: 1. **Web Service技术介绍** Web服务是一种基于互联网的...

    java axis webservice 开发实例

    Java Axis WebService 开发实例详解 在Java世界中,开发Web服务时,Axis是一个非常流行的开源工具,它允许开发者创建、部署和使用Web服务。本实例将深入探讨如何使用Axis来构建一个简单的Web服务,并进行调用。这个...

    axis 实现 webservice 例子

    在IT行业中,Web服务是一种广泛使用的通信协议,它允许不同应用程序之间进行数据交换。Web服务的一个常见实现方式是使用Web Service Description Language (WSDL)来定义服务接口,以及Simple Object Access Protocol...

    spring+axis集成webservice

    本文将深入探讨如何使用Spring与Axis进行集成,以便开发和消费Web服务。 首先,让我们了解Spring和Axis的基本概念。Spring是一个开源Java框架,它为构建灵活、模块化且可测试的应用程序提供了强大的支持。它包含多...

Global site tag (gtag.js) - Google Analytics