`
biqing0427
  • 浏览: 57046 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SOAP简介

    博客分类:
  • Soap
阅读更多
SOAP是一个基于XML的用于应用程序之间通信数据编码的传输协议。最初由微软和Userland Software提出,随着不断地完善和改进,SOAP很快被业界广泛应用,目前完全发布版本是1.1。在其发展过程中,W3C XML标准工作小组积极促成SOAP成为一个真正的开放标准。在写作此文档之时,SOAP1.2草案已经发布,1.2对1.1中相对混乱的部分做了改进。
SOAP被广泛作为新一代跨平台、跨语言分布计算Web Services的重要部分。
2. 什么是Axis

Axis是Apache组织推出的SOAP引擎,Axis项目是Apache组织著名的SOAP项目的后继项目,目前最新版本是采用Java开发的1.1版本,C++的版本正在开发之中。Axis v1.1软件包可以从http://ws.apache.org/axis/dist/1_1/下载得到。
但是Axis不仅仅是一个SOAP引擎,它还包括:
      一个独立运行的SOAP服务器
      一个servlet引擎的插件,这个servlet引擎可以是Tomcat
      对WSDL的扩展支持
      一个将WSDL的描述生成JAVA类的工具
      一些示例代码
      还有一个监控TCP/IP包的工具

二、Axis的安装

应用Axis开发Web Services,你需要安装如下软件:
1.JDK1.4.2
2.一个支持Servlet的服务器引擎,比如广为人知的Tomcat。

当安装好Tomcat之后,只需将下载的Axis软件包解压缩,将其中的“webapps”目录下的“axis”目录整个拷贝到Tomcat安装目录下的“webapps”目录下即可。

三、Axis的配置

Axis基于Java开发,可以部署于多种操作系统,使用前需要配置一系列的系统变量,在此假定你已经在本机上装好了Tomcat 4.0以上的版本,需要配置的系统变量如下表所示:

CATALINA_HOME
C:\Tomcat_4_1

(此处应为Tomcat的安装位置,注意路径名中不要有空格)

AXIS_HOME
%CATALINA_HOME%\webapps\axis

AXIS_LIB
%AXIS_HOME%\lib

AXISCLASSPATH
%AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery.jar; %AXIS_LIB%\commons-logging.jar;%AXIS_LIB%\jaxrpc.jar; %AXIS_LIB%\saaj.jar;%AXIS_LIB%\log4j-1.2.8.jar; %AXIS_LIB%\xml-apis.jar;%AXIS_LIB%\xercesImpl.jar

CLASSPATH 中加入:
%AXIS_LIB%\axis.jar;%AXIS_LIB%\commons-discovery.jar; %AXIS_LIB%\commons-logging.jar;%AXIS_LIB%\jaxrpc.jar; %AXIS_LIB%\saaj.jar;%AXIS_LIB%\log4j-1.2.8.jar; %AXIS_LIB%\xml-apis.jar;%AXIS_LIB%\xercesImpl.jar

四、Axis的测试

安装配置完毕后,应测试一下是否Axis可以正确运行了。

  启动Tomcat服务器,在浏览器中访问http://localhost:8080/axis/happyaxis.jsp,如果页面显示有错误,则需要回头检查一下相关配置是否正确,如果浏览页面能正确显示出系统组件、属性等参数配置信息,则表示安装成功。现在可以开始开发你的Web Services应用了。

五、服务的发布
Axis提供了两种服务发布方式,一种是即时发布(Instant Deployment),一种是定制发布(Custom Deployment)。

1. 使用即时发布 Java Web Service(JWS)

  对即时发布的支持是Axis的特色之一,使用即时发布使用户只需有提供服务的Java类的源代码,即可将其迅速发布成Web服务。每当用户调用这类服务的时候,Axis会自动进行编译,即使服务器重启了也不必对其做任何处理,使用非常简单快捷。

  使用即时发布首先需要一个实现服务功能的Java源文件,将其扩展名改为.jws(Java Web Service的缩写),然后将该文件放到“……\webapps\axis”目录下即可。
      在此给出一个从英里到公里的长度单位转换的服务,其源码如下:

文件Distance.jws

public class Distance
{
      public double convertMile2Kilometre( double mile )
      {
return mile * 1.609;    //实现英里到公里的距离转换
      }
}

将其放到“……\webapps\axis”目录,通过访问http://localhost:8080/axis/Distance.jws?wsdl可以看到这个服务的WSDL描述文件,这说明Distance服务被成功发布了。描述的WDSL代码如下:
<?xml version="1.0" encoding="UTF-8" ?>
- <wsdl:definitions targetNamespace="http://192.168.0.26:8080/axis/Distance.jws" xmlns="http://schemas.xmlsoap.org/wsdl/" 
     xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://192.168.0.26:8080/axis/Distance.jws" xmlns:intf="http://192.168.0.26:8080/axis/Distance.jws" 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:message name="convertMile2KilometreRequest">
    <wsdl:part name="mile" type="xsd:double" />
    </wsdl:message>
- <wsdl:message name="convertMile2KilometreResponse">
    <wsdl:part name="convertMile2KilometreReturn" type="xsd:double" />
    </wsdl:message>
- <wsdl:portType name="Distance">
- <wsdl:operation name="convertMile2Kilometre" parameterOrder="mile">
    <wsdl:input message="impl:convertMile2KilometreRequest" name="convertMile2KilometreRequest" />
    <wsdl:output message="impl:convertMile2KilometreResponse" name="convertMile2KilometreResponse" />
    </wsdl:operation>
    </wsdl:portType>
- <wsdl:binding name="DistanceSoapBinding" type="impl:Distance">
    <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="convertMile2Kilometre">
    <wsdlsoap:operation soapAction="" />
- <wsdl:input name="convertMile2KilometreRequest">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded" />
    </wsdl:input>
- <wsdl:output name="convertMile2KilometreResponse">
    <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://192.168.0.26:8080/axis/Distance.jws" use="encoded" />
    </wsdl:output>
    </wsdl:operation>
    </wsdl:binding>
- <wsdl:service name="DistanceService">
- <wsdl:port binding="impl:DistanceSoapBinding" name="Distance">
    <wsdlsoap:address location="http://192.168.0.26:8080/axis/Distance.jws" />
    </wsdl:port>
    </wsdl:service>
    </wsdl:definitions>

需要注意的是:JWS的web服务发布是一个很简单的Web服务发布方式,在页面中你不能使用包,而且由于代码是在运行期被编译的,所以在部署之后,你也很难找到错误所在。
分享到:
评论

相关推荐

    SOAP 简介SOAP 简介

    SOAP 简介SOAP 简介SOAP 简介SOAP 简介SOAP 简介SOAP 简介SOAP 简介

    SOAP简介很好用的 ,初期可以学

    #### 一、SOAP简介 SOAP(Simple Object Access Protocol)是一种轻量级协议,用于在分布式环境中交换结构化的信息。它主要用于传输XML格式的数据,并且可以运行于多种底层协议之上,最常用的是HTTP。SOAP允许在...

    Microsoft Soap Toolkit3.0.rar

    1. **SOAP简介**: SOAP是Web服务的基础,它定义了一种在分布式环境中交换结构化信息的标准格式。通过HTTP协议进行传输,SOAP消息以XML文档的形式封装,确保了跨平台和跨语言的兼容性。 2. **Microsoft SOAP ...

    WebService工作原理以及SOAP简介.part1.rar

    视频资源 关于 webservice的 soap 的讲解

    PHP的soapDemo

    1. **SOAP简介**: SOAP是一种基于XML的协议,它允许应用程序通过HTTP、SMTP等传输协议交换结构化信息。SOAP消息主要由三部分组成:Header、Body和Envelope。它提供了一种标准的方式来封装请求和响应,使得不同平台...

    soap白皮书 TXT格式

    #### 一、SOAP简介与功能 SOAP(Simple Object Access Protocol)是一种基于XML的信息交换协议,旨在为分布式系统提供一种标准化的远程过程调用(RPC)方式。它通过一系列规范定义了消息结构、编码规则、绑定机制...

    C#winform下WebService Soap应用

    WebService Soap 简介 WebService Soap 是一种基于 SOAP 协议的 Web 服务技术,允许不同语言和平台之间的通信和数据交换。它提供了一种松散耦合的接口,使得不同的系统和应用程序能够相互通信和交互。 Winform ...

    Java使用SOAP获取webservice实例解析

    #### SOAP简介 SOAP(Simple Object Access Protocol)即简单对象访问协议,是一种基于XML的数据交换协议,主要用于不同应用之间通过HTTP协议交换结构化信息。SOAP消息通常由四个主要部分组成:信封(Envelope)、...

    soap规范web service调用

    #### 一、SOAP简介 **SOAP**(Simple Object Access Protocol)是一种基于XML的标准协议,用于在分布式环境中交换结构化的信息。它定义了一种消息格式,使得不同应用之间可以通过标准的互联网协议(如HTTP)进行通信...

    QtSoap解决方案

    QtSoap简介** QtSoap是基于Qt的开源库,允许开发者在Qt应用中创建和解析SOAP请求和响应。SOAP是一种轻量级、基于XML的协议,用于在分布式环境中交换结构化和类型化的信息。通过QtSoap,开发者可以轻松地与符合SOAP...

    SOAP 经典教程

    #### 一、SOAP简介 **SOAP**(Simple Object Access Protocol,简易对象访问协议)是一种基于XML的通信协议,主要用于不同应用程序之间的数据交换。它支持多种编程语言和平台,并且能够通过互联网进行高效通信。...

    Soap2Android实例

    1. SOAP简介: SOAP是一种基于XML的数据交换协议,用于在分布式环境中交换结构化信息。它允许服务提供者和消费者通过HTTP或其他传输协议进行通信。SOAP消息通常包含三个主要部分:Envelope、Header和Body。 2. ...

    php-soap(web,server)

    一、SOAP简介 SOAP是一种基于XML的轻量级协议,用于交换结构化的和类型化的信息。它允许服务提供者定义一组操作,这些操作可以通过HTTP、SMTP等传输协议被远程调用。SOAP消息通常包含三个主要部分:Header、Body和...

    java SOAP教程

    #### SOAP简介 SOAP,全称为Simple Object Access Protocol,即简单对象访问协议,是一种基于XML的协议,旨在实现不同应用程序之间通过HTTP进行信息交换的能力。SOAP不仅适用于Java,还广泛应用于多种编程语言和...

    soap入门教程

    #### 一、SOAP简介 SOAP(Simple Object Access Protocol)是一种基于XML的简单协议,它主要用于应用程序间的交互,特别是通过HTTP来进行信息交换。SOAP的设计初衷是为了克服传统远程过程调用(RPC)所带来的兼容性...

    一个soap例子,欢迎下载

    1. **SOAP简介**: SOAP是一种简单的基于XML的协议,最初设计用于在分布式环境中交换结构化信息。它允许应用程序通过HTTP或其他传输协议来发送和接收数据,使得不同系统间的交互变得可能。 2. **SOAP消息结构**: ...

    soap客户端工具

    **SOAP简介** SOAP是一种轻量级、基于XML的协议,主要用于在Internet上交换结构化的和类型化的信息。它的主要特点是可扩展性、平台无关性和语言无关性,这使得SOAP成为跨平台、跨语言的Web服务通信标准。SOAP消息...

    SOAP 教程 是一种简单的基于 XML 的协议

    1. **SOAP简介**: - SOAP是简易对象访问协议,用于应用程序间的通信。 - 它是一种基于XML的消息传递协议,设计用于通过HTTP进行通信。 - SOAP独立于平台和语言,允许跨平台和跨语言的互操作性。 - 由于其基于...

Global site tag (gtag.js) - Google Analytics