iServer 配置文件说明

发送反馈


SuperMap iServer 的主要配置信息位于 WEB-INF(【SuperMap iServer 安装目录】\webapps\iserver\WEB-INF)文件夹下,关于目录说明请参考:安装后目录说明

 

配置文件简介

WEB-INF 文件夹下存储了服务器及其所提供服务的配置信息,文件夹结构如下:

其中:

各个配置文件的主要内容如下表所示:

配置文件的内容

文件名 描述
iserver-log4j.properties 日志的配置文件。
iserver-preCacheConfig.xml 预缓存配置,使用预缓存服务时默认生成。
kmlStyles.xml 保存用户设置的 KML 显示风格。
iserver-rest-appContext.xml REST 应用配置文件,其中定义了表述类型与 URI 后缀的映射关系。
iserver-rest-resources.xml 扩展资源的资源配置文件,用户可在其中指定扩展资源的名称、URI、类型、表述生成器名称、参数解析器名称等等。
iserver-services-interfaces.xml 服务接口实例,包含 iserver-services-samples.xml 和 iserver-services-user.xml 中所用到的接口实例,如:rest、restjsr、wms111、wms130、wfs100、wmts100、wmts-china、wcs111、wcs112、handler、gpserver。
iserver-services-samples.xml 产品提供的示例服务的配置信息。
iserver-services.xml 用户发布的服务的配置信息。此文件命名时只要以“iserver-services”开头,服务器即可识别为服务配置文件,且支持多个用户自定义服务配置文件,如 iserver-services-1.xml,iserver-services-2.xml。
iserver-system.xml SuperMap iServer 系统级配置,包括元信息、集群、kml 样式配置等。
web.xml SuperMap iServer 的初始化配置文件,定义了功能与类的映射关系。

服务配置文件

SuperMap iServer 的服务均由服务提供者、服务组件、服务接口三个层次组成,所有服务的配置信息存储于服务配置文件中,主要是用于提供接口实例的服务接口配置文件(iserver-services-interfaces.xml)、示例服务的配置文件(iserver-services-samples.xml)以及用户发布服务的配置文件(iserver-services.xml)。其中后两者结构类似,此不赘述。

通过服务配置文件,您可以:

服务接口配置文件

服务接口配置文件 iserver-services-interfaces.xml,包含服务接口实例,根节点为 <application> 元素,包括<interfaces>子节点元素,其中的每一个 interface 元素用于配置一个具体的服务接口,包含以下属性:

示范服务实例配置文件

示范服务实例配置文件 iserver-services-samples.xml,包含产品提供的示范服务实例的配置信息,根节点为 <application> 元素,包括以下子节点元素:

1. <components>

其中的每一个 component 元素用于配置一个具体的服务组件。

2. <providers>

其中的每一个 provider 元素用于配置一个具体的服务提供者。

3. <componentSets>

其中的每一个 componentSet 元素用于配置一个服务组件集合,每个服务组件集合可以引用多个服务组件。

4. <providerSets>

其中的每一个 providerSet 元素用于配置一个服务提供者集合,每个服务提供者集合可以引用多个服务提供者。

系统配置文件

iserver-system.xml 包含了系统的配置信息,根节点为 <server> 元素,<server>节点目前主要包含 <properties> 、<management>、<hosts>、<clustering>、<harLog>、<queryFilter> 子节点元素。

1. <properties> 元素

用于设置 SuperMap iServer 配置系统中全局性质的属性信息,如服务的默认输出路径和访问站点、环境检查与否的设置:

其中,全局属性 outputPath、outputSite 也可以通过服务管理器 WebManager 来设置,请参考全局属性设置

2. <management>元素

用于配置 SuperMap iServer 的元数据信息,iServer 的元数据信息含服务组件类型元数据(<component-types>)、服务提供者类型元数据(<provider-types>)和服务接口类型元数据(<interface-types>),以及安全配置(<security>)。

安全配置节点示例如下所示:

    <security> 
      <accessControl> 
        <SecuritySetting> 
          <isSecurityEnabled>true</isSecurityEnabled>  
          <tokenKey>4da7ef8f2e734f56ab2ecfae20cce49a</tokenKey>  
          <!-- 密码防暴力破解设置 -->           <passwordProtectedSetting>             <passwordDiffCount>5</passwordDiffCount>               <userPasswordErrorCounterSetting>               <passwordErrorProtectEnable>false</passwordErrorProtectEnable>                 <lockedTime>1200000</lockedTime>                 <periodLength>600000</periodLength>                 <allowFailCountPerPeriod>5</allowFailCountPerPeriod>             </userPasswordErrorCounterSetting>           </passwordProtectedSetting>  
          <!-- 安全信息存储配置 -->           <storage class="com.supermap.server.config.SQLSecurityInfoStorageSetting">             <type>MYSQL</type>               <connInfo>               <username>root</username>                 <password>super123.</password>                 <dbType>MYSQL</dbType>                 <driverClass>com.mysql.jdbc.Driver</driverClass>                 <jdbcUrl>jdbc:mysql://192.168.120.44:3306/supermap?useUnicode=true&characterEncoding=UTF-8</jdbcUrl>                 <maxPoolSize>30</maxPoolSize>                 <initialPoolSize>5</initialPoolSize>                 <minPoolSize>5</minPoolSize>                 <maxIdleTime>0</maxIdleTime>                 <maxWait>3000</maxWait>             </connInfo>           </storage>           <!-- 会话存储配置 -->         
          <session class="com.supermap.server.config.RedisSessionSetting">           <type>Redis</type>             <host>127.0.0.1</host>             <port>6379</port>             <maxActive>1024</maxActive>             <maxIdle>200</maxIdle>             <maxWait>10000</maxWait>             <timeout>10000</timeout>             <testOnBorrow>true</testOnBorrow>          </session>         </SecuritySetting>       </accessControl>     </security>

其中,<isSecurityEnabled>用于设置安全控制是否启用,<tokenKey>用于设置Token的共享密钥,<passwordProtectedSetting>用于设置密码保护以防暴力破解,具体参数包括:

<storageSetting>用于设置安全信息的存储位置,包含用于指定存储类型的<type>字段,目前支持SQLITE、MYSQL,以及配置数据库连接信息的<connInfo>。以MYSQL数据库为例,连接信息具体参数包括:

<session>用于指定会话信息的存储位置,包含了 Redis 数据库连接池的配置。具体参数如下:

 

3. <hosts>元素

用于配置 SuperMap iServer 服务的宿主。可包含多个<host>,一个 host 的示例如下:

<host port="8090" type="webapp" uriBase="/services">
        <interface-type>com.supermap.services.wms.WMSServlet</interface-type>
        <interface-type>com.supermap.services.rest.RestServlet</interface-type>
        <interface-type>com.supermap.services.wfs.WFSServlet</interface-type>
        <interface-type>com.supermap.services.wmts.WMTSServlet</interface-type>
</host>

其中,<interface-type>表示服务宿主中包含的服务类型,<host>的各项属性含义如下:

4. <clustering> 元素

包含集群配置等应用。关于集群子节点相关元素的详细内容,请参考集群专题中利用配置文件管理集群

5. <harLog> 元素

用于配置服务访问日志,如是否启用服务访问日志,服务访问日志的文件名称,监控的服务 URI 地址的设置:

6. <queryFilter> 元素

用于 SQL 查询过滤配置,防止 SQL 注入。这里的 SQL 注入,是指在进行 data 或 map 的 SQL 查询时,通过把非法的或违背用户意愿的字符串插入到 SQL 查询表达式中,欺骗服务器执行恶意的 SQL 命令。

7. <repository>

用于设置临时资源的存储位置。详细信息请参考:临时资源的生命周期

8. <relayService> 元素

用于 iExpress 的中继服务配置,仅在 iExpress 产品中使用。

9.<license>元素

用于保存当前iServe的许可信息,包括正在使用的版本及扩展服务许可。详见在iServer中选择许可。示例如下:

  <license> 
    <enabledmodules> 
      <string>CHART</string>  
      <string>NETWORK</string>  
      <string>SPACE</string>  
      <string>SPATIAL</string>  
      <string>TRAFFIC_TRANSFER</string>  
      <string>ADVANCED</string> 
    </enabledmodules> 
  </license> 

其中,<enabledmodules> 中包含了使用的许可名称,具体包括:

 

10.<multiworkers>元素

用于配置多进程服务的相关信息。如进程数量、端口范围等,示例如下:

  <multiworkers>
    <enabled>true</enabled> 
    <workerCount>4</workerCount>
    <workerIP>127.0.0.1</workerIP> 
    <workerPortStart>8900</workerPortStart>
    <workerPortEnd>9000</workerPortEnd> 
    <workerBaseDir>../../workers</workerBaseDir>
    <xmx>1024m</xmx> 
    <communicationPort>8100</communicationPort>
  </multiworkers> 

具体参数描述如下: