SuperMap iServer 提供可视化服务配置管理工具 – iServer Web Manager,通过该工具服务管理者可以快速的构建各种类型的 GIS 服务内容,配置服务发布的形式,其中就包括 REST 风格的发布形式。

REST 服务的管理与配置可以分为以下几个步骤:

确定 REST 服务内容

SuperMap iServer 提供地图、数据、三维、交通网络分析等 REST 服务,通过简单的配置就能够将这些服务进行发布。因此配置服务的前提需要先确定对外提供哪些内容的 REST 服务,由此根据服务内容选择对应的服务模块。

SuperMap iServer 提供的 GIS 服务具有多层结构体系,如下图所示,主要包括 Provider 层、Component 层,Interface 层。其中 Interface 层专门提供了 REST Servlet 接口用于实现 GIS 功能以 REST 风格的形式发布。在 Provider 和 Component 层都提供对应不同服务内容的服务模块,将各两层中具有相同服务内容的模块进行组合配置,以及对 REST Servlet 接口的配置,SuperMap iServer 就可以通过依赖注入的方式构建出相应的不同内容的 REST 服务。例如,下图中,具有地图操作能力的 Provider 模块与 Component 模块组合并通过 REST Servlet 接口发布成地图 REST 服务。地图 REST 服务={WMSMapProvider,UGCMapProvider}+MapComponent+REST Servlet;数据 REST 服务={WFSDataProvider,UGCDataProvider}+ DataComponent+REST Servlet 等。

配置服务提供者或者服务提供者集合

在确定了 REST 服务发布的内容后,可以通过服务管理器-iServer Web Manager 配置服务提供者或者服务提供者集合的参数,也可以通过配置文件-services.xml 进行配置。其中,如果发布地图 REST 服务,需要配置 MapProvider 类型的服务提供者,如 UGCMapProvider、WMSMapProvider 等,同理,发布数据 REST 服务,需要配置 DataProvider 类型的服务提供者,如 UGCDataProvider。不同类型的服务提供者需要配置不同的参数,例如配置 UGCMapProvider,利用该服务提供者实现对地图的相关操作,通过配置文件的方式进行配置,则服务提供者的具体配置在节点中进行,如下所示:

<provider name="ugcMapProvider1" class="com.supermap.services.providers.UGCMapProvider">

    <config class="com.supermap.services.providers.UGCMapProviderSetting">

        <outputPath>../webapps/iserver/output</outputPath>

        <outputSite>http://localhost:8090/iserver/output/</outputSite>

        <name>default</name>

         <workspacePath>../samples/data/World/World.sxwu</workspacePath>

    </config>

</provider>

其中<provider>中的 class 标识的是 UGC 服务提供者的实现类,<config>中的 class 标识的是 UGC 服务提供者对应的配置类,即 UGCMapProviderSetting ,<config>中的内容是 UGCMapProviderSetting 对应的配置项:

    <outputPath>:图片的输出路径。

    <outputSite>:访问图片的根目录 URI。

    <name>:服务提供者配置的名称。

    <workspacePath>:该服务提供者所用的工作空间的路径。

另:服务提供者集合的配置在<providerSet>节点中进行。

关于服务提供者(集合)的具体配置方法参见联机帮助的服务配置章节的介绍。

配置服务组件

服务提供者配置结束后需要开始配置服务组件参数。配置服务组件有两种方法,通过服务管理器配置或者通过配置文件配置。在进行服务组件配置的时候,还需要为服务组件指定它所调用的服务提供者(Provider)的信息,并且要求服务组件所指定的服务提供者的类型(Map、Data、Realspace 等)要与服务组件对应,即 Map 类型的服务提供者可以被 Map 类型的服务组件调用。

例如通过配置文件的方式进行配置,则服务组件的配置是在<component>节点中进行,假设配置一个地图组件,如下所示:

<component name="map-world"

class="com.supermap.services.components.impl.MapImpl" providers="ugcMapProvider-World" interfaceNames="rest,wms111,wms130,wmts100">

    <config class="com.supermap.services.components.MapConfig">

    </config>

</component>

其中<component>节点的 class 属性标识的是地图组件的实现类,providers 属性是地图组件用到的服务提供者集合(参见:配置服务提供者);<config>节点是该地图组件实现对应的配置项。

配置接口

在服务接口层,SuperMap iServer 提供专门用于发布 REST 服务的 Servlet - REST Servlet,通过服务管理器或者配置服务配置文件对 REST Servlet 进行配置,即可实现以 REST 服务的形式对外发布 GIS 服务。如果通过配置文件的方式进行配置,则服务接口的配置是在节点中进行,如下所示:

<interface name="rest" class="com.supermap.services.rest.RestServlet"></interface>

启动服务

在 %SuperMap iServer_HOME%\bin 目录下,提供了启动/停止 SuperMap iServer 服务器的批处理文件:

  • startup.bat:启动 SuperMap iServer 服务器

  • shutdown.bat:停止 SuperMap iServer 服务器

使用安装包安装 SuperMap iServer 后,在开始菜单中也提供了 SuperMap iServer 启动/停止的快捷方式:

  • 开始 > 程序 > SuperMap > SuperMap iServer 11i(2024) > 启动 iServer 服务

  • 开始 > 程序 > SuperMap > SuperMap iServer 11i(2024) > 停止 iServer 服务

启动服务还可以通过服务管理器进行启动,在服务选项卡中可以在目标服务实例的右侧点击启动按钮即可。