Axis2/C入门教程之四(仓库文件夹(Repository Folder)介绍)

仓库(Repository)是一个存储所有Axis2/C相关配置及服务和模块的文件夹。

仓库文件夹结构如下图所示:

可以为仓库文件夹指定任意名称(本例中为axis2c_repo)。它包含了3个子文件夹及axis2.xml配置文件。

各文件夹的用途如下表所示。

Axis2/C仓库目录
文件夹/文件名称 描述
lib lib文件夹包含Axis2/C引擎所需的库。虽然用户可选择Axis2/C共享库的位置,但动态加载的共享库,解析器,传输接收器及传输发送器必须位于lib文件夹中。
modules[可选]

modules文件夹包含Axis2/C发布的模块。各个已发布的模块将在modules文件夹中拥有自己的文件夹。例如,一个名为addressing的模块已被发布,则在modules文件夹下应由一个addressing文件夹。

在发布时,Axis2/C发布引擎将遍历modules文件夹并找出可用的模块。

modules文件夹是可选的,如果其中为空或者文件夹不存在,代表没有已发布模块。

services[可选]

services文件夹包含了Axis2/C发布的服务。各个已发布的服务将在services文件夹中拥有自己的文件夹,或者位于其中一个子文件夹中。

在发布时,Axis2/C发布引擎将遍历services文件夹并找出可用的服务。

services文件夹是可选的,如果其中为空或者文件夹不存在,代表没有已发布服务。

axis2.xml

axis.xml文件是Axis2/C的配置文件。

该配置文件必须存在,并且名称必须为axis2.xml。将Axis2/C仓库视为拥有axis2.xml的文件夹是安全的。

如果客户端和服务器都采用Axis2/C编写,那么它们可以使用相同的仓库。但是,可以在服务端使用一个仓库,并在客户端使用另外一个。services文件夹仅在仓库被用于服务端时被使用。当仓库被客户端使用时,将不会使用services文件夹(如果存在)。

Axis2/C二进制发布版本在提取时可视为可用的仓库文件夹。如果通过源代码构建Axis2/C,当构建源代码(包括示例)时,安装目标文件夹将视为仓库文件夹。

简单Axis服务器(即axis2_http_server),客户端示例及HTTPD模块(Axis2 Apache2模块)需要指定仓库文件夹才能正确运行。

  1. 模块文件夹
    所有模块都放置在仓库的modules文件夹内,并且每个模块在modules文件夹中都有自己的子文件夹。
    放置模块的文件夹必须与模块名称具有相同的名称。 例如,Addressing模块将被放置在名为Addressing的子文件夹中。
    在子文件夹内部,放置了实现模块的库文件及模块配置文件module.xml。两个文件必须存在于子文件夹中。module.xml文件将由发布引擎处理,以查找模块相关信息,如模块名称、处理程序集、添加处理程序的流程等。

  2. 服务文件夹
    所有服务都放置在仓库的services文件夹内,并且每个服务在services文件夹中都有自己的子文件夹。 Axis2/C有一个称为服务组的概念,服务组中可以有一个或多个服务。为了便于处理,单个独立服务会被分配一个与Axis2/C引擎的服务名称相同的服务组。因此,services文件夹中的子文件夹对应于服务组。
    服务(如果作为独立服务部署)将保存在与服务名称相同的文件夹中。例如,echo服务将被放置在名为echo的子文件夹中。实现服务的库文件和服务配置文件services.xml将放置在与服务相对应的文件夹中。考虑到引擎将文件夹视为代表服务组而不是单个服务,所以配置文件称为services.xml(复数)。但是,仍可将单个服务放在单个文件夹中,这是最常见的情况。
    services文件夹中的每个子文件夹应至少有一个实现服务的库文件和一个services.xml文件。如果它是一个服务组,则会有多个库文件,但只有一个services.xml文件可以配置所有这些服务。 services.xml文件由部署引擎处理,以找出服务组及服务相关信息,如服务组名称,服务名称,每个服务的操作集合等。

你可能感兴趣的:(WebService)