iServer 配置文件说明

发送反馈


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

 

配置文件简介

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

其中:

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

配置文件的内容

文件名 描述
iserver-datacatalog.xml 数据目录服务配置文件,包含数据目录服务中的数据存储的配置以及其他的一些配置信息。
iserver-log4j.properties 日志的配置文件。
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-services-buildin.xml iServer内置服务(如Geometry服务、map服务)的配置信息。
iserver-system.xml SuperMap iServer 系统级配置,包括元信息、集群、kml 样式配置等。
web.xml SuperMap iServer 的初始化配置文件,定义了功能与类的映射关系。
iserver-security.db 用于存储用户、角色等信息的数据库。
iserver-services.db 用户存储服务授权信息的数据库。

服务配置文件

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 元素用于配置一个具体的服务组件。

注:用户发布服务的配置文件(iserver-services.xml)的 component 元素除以上属性外还支持 initPriority 属性,该属性代表 GIS 服务启动的优先级,优先级数值越高启动 iServer 时 GIS 服务启动顺序越靠前。

2. <providers>

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

3. <componentSets>

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

4. <providerSets>

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

内置服务的配置文件

内置服务配置文件 iserver-services-buildin.xml,包含 iServer 提供的几何服务的配置信息,根节点为 <application> 元素,包括以下子节点元素:

1. <componentSets>

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

2. <providerSets>

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

3. <components>

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

4. <providers>

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

系统配置文件

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>
          <cacheInfoToMemory>true</cacheInfoToMemory>
          <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的共享密钥;<cacheInfoToMemory>用于设置是否将所有用户信息缓存到内存,并从内存查询用户信息。默认值为 true,表示缓存所有用户信息到内存。如果用户数量比较大,建议设置为 false,用户信息不缓存到内存,实时从数据库查询,因为缓存所有用户信息需要大量的 SQL 查询,性能慢,只在具体查询时查询相关的数据即可;<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> 元素

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

9.<license>元素

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

  <license> 
    <enabledmodules> 
      <string>CHART</string>  
      <string>NETWORK</string>  
      <string>SPACE</string>  
      <string>SPATIAL</string>  
      <string>TRAFFIC_TRANSFER</string>  
      <string>PLOT</string>
      <string>SPATIAL_PROCESSING</string>
      <string>SERVICE_NODE_ADDITION</string>
      <string>ENTERPRISE</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>
    <requestDispatchMode>RANDOM</requestDispatchMode>  
    <timeout>20</timeout> 
  </multiworkers> 

具体参数描述如下:

11.<processing>元素

用于分布式分析服务配置,示例如下:

<processing>
    <sparkHome>/home/supermap/spark-1.6.1-bin-hadoop2.6</sparkHome>
    <masterAddress>spark://sparkmaster:7077</masterAddress>
</processing>

<processing>中包含了 Spark 集群的基本配置:

数据存储配置文件

数据存储配置文件 iserver-datastores.xml,根节点为 <application> 元素,包括<datastores>子节点元素,其中的每一个 datastore 元素用于配置一个具体的数据存储,包含以下属性:

示例如下:

  <?xml version="1.0" encoding="UTF-8"?>
   <application>
    <datastores>
     <datastore>
      <datastoreType>BIGDATAFILESHARE</datastoreType>
      <type>FOLDER</type>
      <name>samples</name>
      <url>../../samples/data/ProcessingData</url>
      <commonsCSVMetaData> 
       <xIndex>10</xIndex>  
       <yIndex>11</yIndex>  
       <separator>,</separator>
      </commonsCSVMetaData> 
     </datastore> 
    </datastores> 
   </application>