AXIS User Guide-最基本的入门

转载 2007年09月18日 00:24:00

AXIS User Guide


什么是SOAP?
SOAP是一个基于xml的通信协议和应用内部通讯的编码格式。目前是1.2版,尽管1.1使用的更为广泛。

w3c负责管理这个标准

什么是axis?
axis是Apache EXtensible Interaction System的缩写。它本质上是一个soap引擎--一个用来构造soap

处理器(比如客户端,服务端,网关)的框架。目前的版本是用java来写的,用c++实现的客户端正在被

开发。但是,axis并不仅仅是一个soap引擎,他还有很多其他的功能。
axis是apache soap的第三代,它来自ibm的SOAP4J。

一些概念:
apache axis是一个开源soap服务器和客户端。soap是一个用来在网络上任意语言编写的系统之间做应用

内部通讯的机制。soap通常在http层交换消息:客户端发送一个soap请求,并且获得或者一个http成功

码和一个soap应答或者一个http错误码。开源意味着你可以得到源代码,但是当你遇到麻烦的时候没有

正式的支持组织来帮助你。
soap消息是xml消息。这些消息在soap系统中交换结构化的信息。消息由一个或多个soap包含在信封头或

者soap主体中的元素组成。soap有2种语法来描述这些元素中的信息。axis把java对性变成soap数据,在

它发送或接受的时候。soap在遇到问题的时候会发送错误码;axis把它们转化为java异常。
soap专注于连接各个独立的系统。它不是用来紧密绑定被同一个小组所开发的程序的机制。它能绑定

java程序在一起,但是不如rmi或者corba那么紧密。如果你尝试发送许多被rmi序列化的java对象,你将

会对axis大失所望。这是它设计的初衷:和语言无关.
axis实现了jax-rpc api,一个标准的java服务的途径.如果你看一下sun网站上的规范或者手册,你将明白

这些api.
axis被编译为axis.jar文件,它实现了在jaxrpc.jar和saaj.jar中声明的jax-rpc api.它需要很多辅助的

库.比如logging,wsdl相关.所有这些文件被打包成axis.war文件,可以被用来直接放在servlet容器

下.axis自带了许多soap服务的样例.你可以添加你自己的东西通过添加编译过的类文件到axis的webapp

下并注册它们.
安装axis并使用userguide
classpath设置:确保axis.jar ,jaxrpc.jar,saaj.jar ,commons-logging.jar ,commons-discovery.jar ,wsdl4j.jar ,Xerces.jar在你的classpath之中
一个最基本的例子:
来看一个 web service客户端是如何来调用apache公开的的axis服务器的。
1   import org.apache.axis.client.Call;
2   import org.apache.axis.client.Service;
3   import javax.xml.namespace.QName;
4  
5   public class TestClient {
6     public static void main(String [] args) {
7       try {
8         String endpoint =
9             "http://ws.apache.org:5049/axis/services/echo";
10 
11        Service  service = new Service();
12        Call     call    = (Call) service.createCall();
13 
14        call.setTargetEndpointAddress( new java.net.URL(endpoint) );
15        call.setOperationName(new QName("http://soapinterop.org/", echoString"));
16 
17        String ret = (String) call.invoke( new Object[] { "Hello!" } );
18 
19        System.out.println("Sent 'Hello!', got '" + ret + "'");
20      } catch (Exception e) {
21        System.err.println(e.toString());
22      }
23    }
24  }
这个代码在 samples/userguide/example1/TestClient.java中
如果你可用的网络连接,可以运行程序:
% java samples.userguide.example1.TestClient
Sent 'Hello!', got 'Hello!'
%

在11和12行,我们创建了一个Service和一个Call对象。这些是标准的用来存储被service调用的元数据JAX-RPC对象。在14行,我们建立了我们的终端url-这是我们的soap消息目的地。在15行,我们定义了web service的方法。在17行,我们真正开始调用需要的服务,传递了一个参数数组--在这个例子中只是一个string.
你可以通过查看soap的请求来了解发生在参数上的一切。
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SOAP-ENV:Body>
    <ns1:echoString xmlns:ns1="http://soapinterop.org/">
      <arg0 xsi:type="xsd:string">Hello!</arg0>
    </ns1:echoString>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

那个String的参数自动的被序列化为xml,而且服务器返回一个同样的我们想要的String。
注意:你或许需要一个tcpmon或者soap monitor工具来收集这个xml文件。


命名参数

在上面的例子中,我们注意到,axis自动命名了在soap中的xml编码的参数arg0,arg1.等等。(这个例子中只有arg0).如果你不想用这种方式,很容易,在调用invoke()方法之前对每个参数调用addParameter 而且对返回值调用setReturnType ,例如:
call.addParameter("testParam",
  org.apache.axis.Constants.XSD_STRING,
  javax.xml.rpc.ParameterMode.IN);
call.setReturnType(org.apache.axis.Constants.XSD_STRING);
例子中,就会把testParam赋给调用函数的第一个参数.它也定义了参数的类型以及是否是输入,输出或者输入参数---这个例子中是输入参数.
现在,如果你运行这个程序,你将得到下面的消息:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <SOAP-ENV:Body>
    <ns1:echoString xmlns:ns1="http://soapinterop.org/">
      <testParam xsi:type="xsd:string">Hello!</testParam>
    </ns1:echoString>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
看到了,参数按照预期被命名为testParam  

初学古筝的一些基础知识

1、使用前的调理   (1)古筝的雁柱(俗称码子)是按高低顺序排列的,最高的雁柱支撑最低音弦,其有效发音弦长(雁柱与前岳山之距离)大体为85—90厘米;最低的雁柱支撑最高音弦,其有效弦长大体为12—...
  • fen0707
  • fen0707
  • 2013年09月10日 13:38
  • 1383

Axis 1.X 入门实例

 AXIS是开源的WS运行引擎,是SOAP协议的一个实现。来源于Apache的一个开源项目Apache SOAP.分为1.X 和2.X.两个的体系结构和使用上有较大的区别。 1。X更加稳定一些。它提供...
  • sunhxp
  • sunhxp
  • 2010年11月07日 21:45
  • 1916

AXIS 入门

转自:http://deltaj.javaeye.com/blog/284387请尊重deltaj的工作成果,转载请注明出处 axis2创建web service(一)                ...
  • liguocai2005
  • liguocai2005
  • 2009年08月02日 21:56
  • 1506

Axis实践之Axis入门

第一部分: 安装Axis 第一步: 下载Axis 从Apache网站下载Axis发布包: http://ws.apache.org/axis/ 我下载的是 Axis 1.4 Final 版 第二步: ...
  • dengjianqiang001
  • dengjianqiang001
  • 2009年02月25日 14:19
  • 200

AXIS入门

怎么安装Axis 1)安装JDK1.3版或以上我的是D:/j2sdk1.4.22)安装TOMCAT5.0不一定要求是TOMCAT,只要是支持servlet 2.2 API的就可以;我的是D:/Tomc...
  • GodSpeed513
  • GodSpeed513
  • 2008年08月18日 17:12
  • 485

axis入门

axis入门很好的例子         http://www.iteye.com/topic/1119880
  • eminem2011
  • eminem2011
  • 2012年04月26日 16:11
  • 356

面向对象编程基础入门(vb.net版)

  几乎在 Visual Basic 中执行的所有操作都与对象关联。如果您第一次接触面向对象的编程,则下列术语和概念将帮助您入门。 类和对象单词“类”和“对象”在面向对象的编程中使用得非常多,很容易将...
  • veryhappy
  • veryhappy
  • 2004年07月13日 11:25
  • 2001

ant 最基本的入门

Step1:下载ant Step2:解压,并将其bin子文件夹的路径加到计算机高级配置中的环境变量path后 如我的路径为:E:\Study\ant\apache-ant-1.9.2\bi...
  • q1w2e3a_4s5d6z
  • q1w2e3a_4s5d6z
  • 2013年10月05日 21:28
  • 451

SOAP与AXIS2入门教程(附带实例)

最近项目需要用到SOAP以及AXIS2的知识,在学习之余,将第一天学到的内容整理了一下,一来做为笔记做个记录,二来如果有需要的,可以做为参考,今天主要是完成了一下功能,通过一个SOAP请求消息(可以自...
  • daryl715
  • daryl715
  • 2007年05月09日 20:35
  • 12438

numpy模块之axis

numpy模块之axis的含义numpy是python进行科学计算必不可少的模块,随着深度学习越来越火,numpy也越来越流行。了解numpy的人知道,在numpy中,有很多的函数都涉及到axis,很...
  • fangjian1204
  • fangjian1204
  • 2016年11月06日 17:02
  • 8865
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:AXIS User Guide-最基本的入门
举报原因:
原因补充:

(最多只允许输入30个字)