正 文

AJAX及使用E4X编写Web服务脚本(二)


www.7dspace.com  更新日期:2005-10-13 1:12:16  七度空间


  E4X 提供者要求您使用 E4XProvider.jar(下面会用到)来更新 Axis 类路径,除此之外还要包含 rhino.jar 和 xbean.jar。

  一旦更新了 Axis 类路径,您需要创建一个部署脚本并将其部署到 Axis 中。与使用一个 Java 实现的服务不同,在这个模型中我们不需要将任何代码部署到类路径中。相反,我们将代码放到部署描述符中,如本文中的一个例子 e4xstock.wsdd 所示。

  清单 1. e4xstock.wsdd

<deployment name="test" xmlns="http://xml.apache.org/axis/wsdd/"
            xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">

  <service name="E4XStock" provider="java:E4X">
    <parameter name="type" value="body"/>
    <documentation>
       <![CDATA[
          function service(x) {
             var value = (x..*::Symbol=="IBM")?983:52.5;
         
             var n = new Namespace("urn:quoteservice");
             default xml namespace = n;
             response =
                <getQuoteReturn>
                   <Result>{value}</Result>
                </getQuoteReturn>;
             return response;
          }
       ]]>
    </documentation>

  </service>
</deployment>

  它首先定义了一套标准的命名空间(namespace)。 元素定义了服务名称和提供者类型:E4XProvider 所提供的 E4X。

  parameter 标记使您可以配置提供者的参数。这里 E4X 提供者支持的唯一参数是 type,它的值可以是 body 或是 envelope。在这个例子中,“body”意味着脚本仅仅需要处理消息体元素。

  E4X 提供者使用 documentation 元素来存储脚本。这是个极其简便的实现方法——明智的方法往往不是偶然的!字符串 允许我们在其中填写任意字符,包括脚本中的 "" 与 <>。

  脚本本身定义了一个独立的函数,它以一个 XML 参数作为输入同时输出一个 XML。使用语法 x..*::Symbol 来摘取出符号。同时,这也是从 SOAP 主体中任意深度的任意命名空间来提取标记 Symbol。如果与等于“IBM”,我们设置值为 983。(好,对于我们的股票程序,我们已经有一点点希望了)否则,我们返回 52.5。

  我们使用在第 1 篇文章中描述的 {} 语法来创建响应:

response =
   <getQuoteReturn>
      <Result>{value}</Result>
   </getQuoteReturn>;

  为了测试它,首先要象上面描述的那样正确设置类路径,以使 Axis 运行起来。我们假定 Axis 运行在本地 8080 端口。在本例中使用 SimpleAxisServer 已经足够了。现在键入:

> java org.apache.axis.client.AdminClient
   -l "http://localhost:8080/axis/services/AdminService" e4xstock.wsdd
(所有这些必须输入在同一行)

5页,页码:[1] [2] [3] [4] [5] 

上一篇:AJAX及使用E4X编写Web服务脚本(一)
下一篇:IP地址盗用常用方法及防范
作者:Paul Fremantle  来源:IBM ( 责任编辑:7dspace )
收藏此页】【打印】【关闭
站 内 搜 索
 

热 点 导 读
特 别 推 荐