`
mfcai
  • 浏览: 409130 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用axis开发web service的心得

阅读更多
1.web service的定义
web service可以看成是面向服务的体系架构的一种实现方式.在这个架构中,有服务提供者,服务使用者,服务注册中心.WSDL,SOAP,以及UDDI是基本的Web服务规范.WSDL用来描述服务;UDDI用来注册和查找服务;而SOAP,作为传输层,用来在消费者和服务提供者之间传送消息。SOAP是Web服务的默认机制,其他的技术为可以服务实现其他类型的绑定。一个消费者可以在UDDI注册表(registry)查找服务,取得服务的WSDL描述,然后通过SOAP来调用服务。
1)服务提供者
一个可通过网络寻址的实体,它接受和执行来自使用者的请求。
它将自己的服务和接口契约发布到服务注册中心,以便服务使用者可以发现和访问该服务。
2)服务使用者
一个应用程序、一个软件模块或需要一个服务的另一个服务。
它发起对注册中心中的服务的查询,通过传输绑定服务,并且执行服务功能。
服务使用者根据接口契约来执行服务。
3)服务注册中心
服务发现的支持者;它包含一个可用服务的存储库,并允许感兴趣的服务使用者查找服务提供者接口。在实际应用中,通常用axis来搭建服务注册中心.所有的服务都通过service-config.wsdd进行描述.server-config.wsdd一般是放在项目的WEB-INF下


2.axis的开发环境搭建
  项目的开发环境:java1.5,tomcat6,Axis1.4
  在项目的动态连接库中加入Axis所需的包:axis.jar;axis-ant.jar;commons-discovery-0.2.jar;commons-logging-1.0.4.jar;jaxrpc.jar;log4j-1.2.8.jar;saaj.jar;wsdl4j-1.5.1.jar;activation.jar;mail.jar.
web.xml加入相关定义
  <display-name>Apache-Axis</display-name>
  <servlet>
    <display-name>Apache-Axis Servlet</display-name>
    <servlet-name>AxisServlet</servlet-name>
    <servlet-class>
        org.apache.axis.transport.http.AxisServlet
    </servlet-class>
  </servlet>
  <servlet>
    <display-name>Axis Admin Servlet</display-name>
    <servlet-name>AdminServlet</servlet-name>
    <servlet-class>
        org.apache.axis.transport.http.AdminServlet
    </servlet-class>
    <load-on-startup>100</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>AxisServlet</servlet-name>
    <url-pattern>/services/*</url-pattern>
  </servlet-mapping>




3.用axis发布webservice的方法
用axis发布webservice的方法有3种:
1)即时发布
编译好类文件,把扩展名改成jws,然后放到axis的目录下,因为axis目录下默认有web.xml定义,用org.apache.axis.transport.http.AxisServlet来解析*.jws文件。
2)手动发布
    也就是写部署文件deploy.wsdd,这个文件里已经写了入口地址,运行java org.apache.axis.client.AdminClient即可完成部署.
访问的时候一般是http://127.0.0.1:8080/axis/services/入口地址.
3)自动部署
   要编写server-config.wsdd,配置web.xml,发布和普通的web程序发布一样,入口地址也已经写到server-config.wsdd里了,查看的时候就是http://127.0.0.1:8080/你的发布webapp/services/入口地址
   Java类映射到WSDL的规则,请参考JAX-RPC规范
   服务发布以后,就可以在IE浏览器里看到它的WSDL,一般是服务的URL后面加一个“?wsdl”


4.AXIS的几种服务类型
     AXIS有四种service styles,分别是:RPC, Document, Wrapped, 和Message。最常用的就是RPC和Message。
1)RPC服务
   这个服务是axis默认的服务。我们在前面的例子中写的就是rpc服务。<service ... provider="java:RPC"> 。rpc服务遵从soap rpc规范和编码规则,意味着来自rpc服务的xml将类似上面例子中的“echoString”--每个rpc调用被模块化为一个外部元素,匹配操作名称,并包含了很多内部元素,每一个都是操作的一个参数。axis将把这些xml转化为java对象,配送给你得服务,并将序列化来自服务的java对象为xml.因为rpc服务默认采用soap section 5规则,对象将会通过"multi-ref" 序列化来编码。
2)Document / Wrapped 服务
这2个服务很类似,都不需要用soap编码来处理数据。他就是一个普通的xml格式。无论哪种情况,axis还是对他们做了xml到java得绑定,所以你最终处理的还是java对象,而不是xml结构的字符串。
  下面的例子来说明他们2个之间的区别。
 <soap:Envelope xmlns="http://xml.apache.org/axis/wsdd/"
    xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
  <soap:Body>
    <myNS:PurchaseOrder xmlns:myNS="http://commerce.com/PO">
      <item>SK001</item>
      <quantity>1</quantity>
      <description>Sushi Knife</description>
    </myNS:PurchaseOrder>
  </soap:Body>
</soap:Envelope>
相关的PurchaseOrder类型定义如下:
<schema targetNamespace="http://commerce.com/PO">
  <complexType name="POType">
    <sequence>
      <element name="item" type="xsd:string"/>
      <element name="quantity" type="xsd:int"/>
      <element name="description" type="xsd:string"/>
    </sequence>
  </complexType>
  <element name="PurchaseOrder" type="POType"/>
</schema>
对于一个document服务来说,他将对应到这样的方法:
public void method(PurchaseOrder po)
而对于wrapped服务来说,他对应于下面的方法:
public void purchaseOrder(String item, int quantity, String description)
3)Message 服务
  当你需要处理纯xml而不是java对象时,你将会用到这种服务。
  message服务的方法有4种签名
public Element [] method(Element [] bodies);
public SOAPBodyElement [] method (SOAPBodyElement [] bodies);
public Document method(Document body);
public void method(SOAPEnvelope req, SOAPEnvelope resp);




5.axis生成web service客户端的调用框架
用Axis的wsdl2java生成Web service的客户端的调用框架,wsdl2java生成的客户端的调用框架是stub方式的。它包括endpoint接口、实现该接口的stub,serviceLocator.通过服务端提供WSDL信息来生成客户端的调用框架.
  有了web service客户端的调用框架,客户端stub存根方式调用web服务
分享到:
评论

相关推荐

    Axis开发Web Service实例

    在探讨如何使用Apache Axis来开发Web Service之前,我们首先需要了解一些基本概念。 **Web Service**是一种标准的技术框架,用于实现不同平台之间的应用通信。它使用XML作为数据交换格式,并通过HTTP进行传输。...

    使用Axis开发Web Service程序

    ### 使用Axis开发Web Service程序 #### 一、概述 随着互联网技术的发展,Web Service作为一种标准的、基于XML的网络服务形式,在实现不同平台之间数据交换和应用集成方面扮演着重要角色。Axis作为Apache组织下的一...

    JAVA高级开发:使用Axis开发Web Service

    为了更多喜爱开发的程序员也能迅速了解Web Service的开发,我这里整理了一些通过Axis开发Web Service的一些要点,希望能让不熟悉Web Service的开发人员能够迅速掌握Web Service。

    用axis2开发web service

    以下是关于使用Axis2开发Web Service的详细步骤和知识点: 1. **实验环境搭建**: - 首先确保安装了JDK 1.6,因为 Axis2需要Java运行环境。 - 接下来,安装Eclipse 3.5集成开发环境,它提供了方便的开发工具。 -...

    AXIS开发Web Service.docx

    AXIS 是 Apache 开源项目提供的一款强大的 Web Service 引擎,用于开发和部署 Web Service。在本文中,我们将深入探讨如何使用 AXIS 在 Tomcat 6.0.26 上进行配置,并详细介绍三种部署和调用 Web Service 的方法:...

    axis开发web service程序

    此示例演示了如何使用 Apache Axis 开发和部署 Web Service,并通过客户端进行调用。需要注意的是,客户端和服务端的通信依赖于 SOAP 协议和 XML 数据格式。在实际开发过程中,可以根据具体需求调整服务发布方式和...

    Axis开发Web Service的实例

    ### Axis开发Web Service的实例详解 #### 一、概述 在现代软件开发中,Web服务是一种重要的技术,它允许不同应用程序之间通过网络进行通信。Apache Axis是实现Web服务的一个流行框架,它支持SOAP协议,并提供了...

    Axis2 Web Service 开发教程

    【Axis2 Web Service 开发教程】是一份详细指导开发者如何使用Apache Axis2框架创建和部署Web服务的教学资料。Apache Axis2是Java世界中一个强大的Web服务引擎,它提供了高效的性能和灵活的架构,使得Web服务的开发...

    Axis开发Web Service程序教程

    【标题】: "Axis开发Web Service程序教程" 【描述】: "本文旨在引导读者通过AXIS框架体验Web服务的开发流程,适合已有Web服务基础的Java、XML开发者学习。" 【标签】: "axis webservice soap java" 【内容】: ...

    MyEclipse下开发Web Service(Axis)

    接下来,通过一个简单实例——SayHello服务,了解使用Axis开发Web Service的全流程。 **2.1 WSDL编写** - 在MyEclipse中创建一个Web Project,命名为`SayHello`。 - 通过`File -&gt; New -&gt; Other -&gt; MyEclipse -&gt; ...

    MyEclipse下使用Axis开发Web Service()

    本文主要描述如何使用Apache开源项目Axis提供的API来实现Web Services。本文中的提到的例子只为了方便本文的描述而提出,有不妥之处请见谅。 本文的读者应有JAVA web 应用开发基础。应该具有看过WSDL,SOAP,XML等的...

    Axis 开发Web Service(学习笔记)

    **Axis开发Web Service学习笔记** 在信息技术领域,Web服务是一种基于开放标准的互联网通信协议,允许不同的应用程序之间进行互操作。而Axis是Apache软件基金会的一个开源项目,它提供了一个强大的工具集,用于创建...

    使用Eclipse的Axis1.4插件开发Web Service及客户端

    【使用Eclipse的Axis1.4插件开发Web Service及客户端】 在Eclipse JEE 3.3版本中,开发Web Service和客户端程序变得相对简单,因为该版本已经集成了Axis1.4插件,无需额外安装。 Axis是一个开放源码的Web Service...

    MyEclipse下开发Web Service(Axis)2

    在使用 Axis 开发 Web Service 时,需要准备 web 服务器和 Axis API。本文使用的 Web container 是 Tomcat5.5,Axis API 采用版本 2。为便于开发,需要 downloads 相关软件: 1. Tomcat:下载地址为 ...

    基于Tomcat5.0和Axis2开发Web Service应用实例

    【标题】基于Tomcat5.0和Axis2开发Web Service应用实例 在Web服务的世界里,Axis2是一个高效且强大的工具,它允许开发者创建、部署和使用SOAP Web服务。本教程将详细介绍如何利用Apache Tomcat 5.0作为应用服务器,...

    基于Axis的Web Service客户端调用

    本篇将详细介绍如何使用Axis来实现Web Service的客户端调用。 首先,我们需要理解Web Service的基本概念。Web Service基于SOAP(简单对象访问协议)协议,使用WSDL(Web服务描述语言)来描述服务接口,并通过HTTP...

Global site tag (gtag.js) - Google Analytics