先简短的说一下Web Service的概念,简略的总结一下:所谓Web Service就是客户端以标准的SOAP消息将服务请求发给服务提供者,不论服务提供者用什么样的技术,Java、EJB、或者.NET执行相应的程序得到结果,然后将结果以SOAP消息返回给服务请求者。
下面以Axis为例,创建一个简单的Web Service。首先到http://ws.apache.org/axis/上去下载最新的axis版本。最新版本是axis-1.4的。下载之后观察其目录,lib下就是所要用到的所有jar包了。这里少2个jar包,分别是activation.jar和mail.jar,需要单独下载。
好了,现在我们创建一个Web Service项目,命名为webservice_begin。首先把lib目录下的所有jar包拷贝到WEB-INF的lib目录下。ok,现在我们创建接口和实现类。代码如下
package server;
public interface Hello {
public String getHello(String name);
}
package server;
public class HelloService implements Hello {
public String getHello(String name) {
return "hello, " + name;
}
}
接着我们修改下web.xml文件。修改web.xml文件的目的是为创建一个Axis的Servlet。Axis Servlet最核心的实现类为org.apache.axis.transport.http.AxisServlet,然后定义一个Servlet的请求路径为services/*,客户端就可以通过这个路径发布SOAP的请求消息了,下面是修改后的web.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<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>/servlet/AxisServlet</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>*.jws</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>AxisServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
接下来,要配置wsdd文件server-config.wsdd。server-config.wsdd将定义服务的名称,具体的实现类,以及发布的方法和属性等。将其放在src目录下,也就是当前应用的classpath路径下,具体内容如下
<?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="hello" provider="java:RPC">
<parameter name="className" value="server.HelloService"/>
<parameter name="allowedMethods" value="getHello"/>
</service>
<transport name="http">
<requestFlow>
<handler type="URLMapper"/>
</requestFlow>
</transport>
</deployment>
好了,现在我们就可以发布Web Service服务了。
部署成功后,启动你的应用服务器,在地址栏下输入http://localhost:8080/webservice_begin/services,如果没有错误提示,恭喜你,你的Web Service已经发布成功了。点击wsdl,还可以看到具体的wsdl的配置信息。
这里面主要定义了以下内容:本例子的目标空间和命名空间、输入和输出变量的结构类型、请求和响应的消息、wsdl的接口portType、接口操作(Operation)、绑定的传输协议,具体内容如下
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions targetNamespace="http://localhost:8080/webservice_begin/services/hello" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8080/webservice_begin/services/hello" xmlns:intf="http://localhost:8080/webservice_begin/services/hello" 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="getHelloRequest">
<wsdl:part name="name" type="soapenc:string" />
</wsdl:message>
- <wsdl:message name="getHelloResponse">
<wsdl:part name="getHelloReturn" type="soapenc:string" />
</wsdl:message>
- <wsdl:portType name="HelloService">
- <wsdl:operation name="getHello" parameterOrder="name">
<wsdl:input message="impl:getHelloRequest" name="getHelloRequest" />
<wsdl:output message="impl:getHelloResponse" name="getHelloResponse" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="helloSoapBinding" type="impl:HelloService">
<wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="getHello">
<wsdlsoap:operation soapAction="" />
- <wsdl:input name="getHelloRequest">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://server" use="encoded" />
</wsdl:input>
- <wsdl:output name="getHelloResponse">
<wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8080/webservice_begin/services/hello" use="encoded" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="HelloServiceService">
- <wsdl:port binding="impl:helloSoapBinding" name="hello">
<wsdlsoap:address location="http://localhost:8080/webservice_begin/services/hello" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
到这里,服务器端的工作算是完成了。下面我们写一个客户端程序来试着调用一下。客户端程序可以是一个简单的javaProject。调用代码如下
package junit.test;
import java.net.URL;
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
import org.junit.Test;
public class WebServiceTest {
@Test public void testInvoke() throws Exception{
//标识WebService的具体路径
String endpoint = "http://localhost:8080/webservice_begin/services/hello";
//创建Service实例
Service service = new Service();
//通过Service实例创建Call实例
Call call = (Call)service.createCall();
//将WebService的服务路径加入到Call实例中,并为Call设置服务的位置
URL url = new URL(endpoint);
call.setTargetEndpointAddress(url);
//调用WebService方法
call.setOperationName("getHello");
//调用WebService传入参数
String res = (String)call.invoke(new Object[] {"fengfeng925"});
System.out.println(res);
}
}
运行测试用例,哈哈,greenbar,运行成功
输出为hello, fengfeng925
分享到:
相关推荐
本教程将引导你快速入门,掌握使用Axis2创建Web服务的基本步骤。 **一、了解Axis2** Axis2是Axis1的下一代产品,它提供了更强大的功能和更高的性能。Axis2基于模块化架构,支持多种传输协议(如HTTP、HTTPS、SMTP...
二、AXIS Web Service入门 1. 创建Web服务:你可以使用AXIS提供的wsdl2java工具,根据WSDL(Web服务描述语言)文件自动生成Java源代码。这将为你提供一个服务接口和服务实现模板。 2. 实现服务:在生成的服务实现类...
2. 创建服务:使用Axis,你可以通过Java类快速创建Web服务。只需编写提供所需功能的Java类,然后使用 Axis的wsdl2java工具生成对应的WSDL文件和服务接口。 三、生成Web服务客户端 1. WSDL第一:WSDL文件定义了Web...
##### 2.2 使用 Axis2 Eclipse Archiver 创建服务文档 - 在 Eclipse 中选择 `File -> New -> Other`,找到 `Axis2` 类别下的 `Axis2 Eclipse Archiver`。 - 单击 `Next`,在 `Axis2 Service` 页面中选择项目路径。 ...
3. **服务组件**:Axis2支持服务组件(Service Component Architecture, SCA),这是一种用于构建分布式应用程序的模型。服务组件可以通过服务接口、数据绑定和操作来定义,使得服务的创建和组合变得更加简单。 4. ...
【 Axis2 创建 Web Service 入门教程】 Apache Axis2 是一个功能强大的 Web Service 开发框架,它提供了简单、高效的方法来构建和部署 Web Services。本教程将详细介绍如何使用 Axis2 创建 Web Services,从基础...
【Axis入门中文文档】是针对Web Service开发的一款关键工具,主要使用了Axis框架,该框架是Apache软件基金会下的一个开源项目,专门用于构建和部署基于SOAP(Simple Object Access Protocol)的Web服务。本文将深入...
在深入探讨如何使用MyEclipse和Axis开发Web Service之前,我们需要确保所有必要的软件都已就位,包括Java开发环境、MyEclipse、Axis API以及Web容器如Tomcat。 **1.1 软件下载** - **Tomcat 5.5**:可从官方源下载...
- 对于 .NET 平台,可以使用 Visual Studio 和 .NET Framework 创建和消费 Web Service。 - 在 Java 平台上,通常使用 JAX-WS 或者 Axis2 等工具。 - 对于跨平台的解决方案,有开源的工具如 Apache CXF 和 gSOAP...
Apache Axis2是Apache软件基金会开发的一个用于构建Web服务和实现Service-Oriented Architecture (SOA)的...通过上述的入门实例,你可以逐步掌握使用Axis2创建和管理Web服务的关键技术,为构建SOA架构奠定坚实基础。
AXIS是一个开源的Java库,它提供了创建、部署和使用Web服务的工具,是基于SOAP协议的,广泛应用于分布式系统的互操作性。 ### 1. 文档说明 **1.1 背景** 在信息化时代,分布式计算和跨平台交互的需求日益增强,...
这个“Web+Service入门教程”PPT旨在为初学者提供一个全面了解和掌握Web服务的基础。 1. **Web服务的概念** Web服务是一种基于互联网的软件系统,它使用开放的、标准化的协议(如XML、SOAP、WSDL和UDDI)来交换...
总的来说,"axisService"项目是一个很好的起点,可以帮助初学者了解如何使用Axis创建和部署Web服务,以及如何进行交互测试。通过深入学习这些知识点,开发者可以掌握Web服务的核心概念和技术,并在实际项目中应用。
### 使用Apache Axis开发Web Services 步骤详解 #### 一、环境准备 在开始使用Apache Axis开发Web Services之前,需要确保开发环境已经搭建好。本文档将详细介绍如何配置必要的环境。 **1.1 软件下载准备** - **...
本教程将逐步指导你如何利用Axis2在Eclipse环境中创建、部署和调用一个无需任何配置文件的Web服务,并展示如何在Java和C#客户端中使用这些服务。 首先,了解Axis2的基本特性: 1. **支持多种协议**:Axis2不仅支持...
总之,这个简明教程介绍了如何使用Axis2创建一个简单的Web服务,包括编写服务类、生成WSDL、配置服务归档和服务元数据,以及部署和测试服务。理解这些基本步骤是掌握Axis2开发Web服务的关键。随着对Axis2的深入学习...
4. **基于AXIS2的Web Service开发.doc** - 这部分可能详细阐述了使用Axis2进行Web服务开发的完整流程,从创建服务端到发布、测试和服务调用。 5. **WSDL教程.doc** - WSDL是Web服务的核心描述文件,这份教程可能...
Apache Axis是一个开源项目,提供了用于创建和使用Web服务的API。在MyEclipse这样的集成开发环境中,可以方便地进行Web服务的开发、测试和部署。 1. **环境准备** - **Web容器**:文中推荐使用Tomcat 5.5作为Web...
这份文档可能是AXIS2的新手入门教程,包含了详细的步骤指南和实例,帮助初学者快速理解AXIS2的工作流程,如何创建服务、生成客户端代码,以及如何进行测试。通过这个文档,你可以学习到以下内容: 1. **AXIS2简介**...