首页 > 新闻系统 > 编程天地 > 文章正文

Web服务规范SOAP之构建SOAP服务

2007-11-12 11:11:18 来源:论坛整理 作者: 点击:
如果您觉得构建 Web 服务客户机的过程相当简单,事实的确如此。而就很多方面而言,构建服务的过程也同样简单。

 
  如果您觉得构建 Web 服务客户机的过程相当简单,事实的确如此。而就很多方面而言,构建服务的过程也同样简单。

  总体过程

  创建 Axis2 Web 服务的整个过程涉及以下步骤:

  • 创建服务清单
  • 创建类
  • 将其打包为 Axis 存档文件
  • 将 Axis 存档文件上载到 Axis2 Web 应用程序
  • 重新启动服务器(如果有必要)

  这就是全部步骤。让我们首先从服务清单开始。

  创建清单

  服务清单告知 Axis2 应用程序(就更大的范围而言,应用服务器)哪个请求与哪个类对应。例如,可以如清单1 中所示的那样指定两个服务函数。

  清单1. 在清单中指定两个服务函数

<service name="CMSService">
    <description>
        This is a sample Web Service for the newspaper's
Content Managment System.
    </description>

    <parameter name="ServiceClass" locked="false"
>CMSService</parameter>

    <operation name="getNumberOfArticles">
        <messageReceiver class=
"org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
    </operation>
    <operation name="addArticle">
        <messageReceiver class=
"org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
    </operation>
</service>

  首先,定义服务,提供其名称和描述,并指定实际为请求服务的类。接下来,定义实际的操作。请注意,此示例指定了两种不同类型的 messageReceiver。第一个 RawXMLINOutMessageReceiver 用于传统的请求/响应服务。第二个 RawXMLINOnlyMessageReceiver 用于单向消息。操作的名称与有效负载的根元素以及要执行的方法对应。

  将此文件保存为 services.xml。

  接下来,让我们创建实际的应用程序。

  创建应用程序

  让我们首先创建模拟前面看到的 echo 函数的类(将直接返回原始有效负载的副本),如清单2 中所示。

  清单2. CMSService 类

import org.apache.axis2.om.OMElement;
import javax.xml.stream.XMLStreamException;

public class CMSService {

    public OMElement getNumberOfArticles(OMElement element)
                              throws XMLStreamException {

        element.build();
        element.detach();

        return element;
    }
}

  要编译此应用程序,请确保 /lib 中的所有 *.jar 文件都在您的 CLASSPATH 上。

  此应用程序相当简单,仅包含一个与 getNumbereOfArticles 操作对应的类。此函数和任何要作为操作的函数一样,接收单个 OMElement 参数(表示有效负载)。此处,您将首先使用 build() 方法来确定已接收到所有数据——AXIOM 使用一个 pull 方法访问数据——然后将元素从其当前树中分离,以便能够将其返回。

  如果喜欢冒险,可以自由地部署服务和访问服务,以访问服务并查看结果。应

9 7 3 1 2 3 4 5 4 8 :

精彩推荐
焦点大图推荐
本类热门文章

论坛美图

本周软件下载排行

广告联系 | 版权说明 | 意见建议 | 加入收藏 | 军网站群 [ 军软件园 - 军软件商城 - 军软件园论坛 ]

电信与信息服务业务经营许可证:京ICP证050203