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. <uploadFileSetting>元素

用于统一设置 SuperMap iServer 文件上传相关配置,如上传文件最大体积、解压后最大体积、重名文件是否覆盖、存放目录等:

3. <management>元素

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

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

    <security> 
      <accessControl> 
        <SecuritySetting> 
          <!-- 验证码配置,默认为关闭 -->
          <captchaConfig>
              <enable>false</enable>
              <type>IMAGE_CAPTCHA</type>
              <length>4</length>
              <expireInSeconds>120</expireInSeconds>
          </captchaConfig>
          <isSecurityEnabled>true</isSecurityEnabled>
          <disableRememberMe>false</disableRememberMe>
          <cacheInfoToMemory>true</cacheInfoToMemory>
          <tokenKey>4da7ef8f2e734f56ab2ecfae20cce49a</tokenKey>
          <PBKDF2Iterations>1000</PBKDF2Iterations>
          <!-- 密码防暴力破解设置 -->
          <passwordProtectedSetting> 
            <passwordDiffCount>5</passwordDiffCount>  
            <userPasswordErrorCounterSetting> 
              <passwordErrorProtectEnable>false</passwordErrorProtectEnable>  
              <lockedTime>1200000</lockedTime>  
              <periodLength>600000</periodLength>  
              <allowFailCountPerPeriod>5</allowFailCountPerPeriod> 
            </userPasswordErrorCounterSetting> 
          </passwordProtectedSetting>
          <!-- 三段式根密钥配置 -->
          <rootSecretKeySetting> 
            <loadModelType>TRIPART</loadModelType>  
            <part3>[B@7e31062c</part3> 
          </rootSecretKeySetting> 
        </SecuritySetting> 
      </accessControl> 
      <!-- 安全信息存储配置 -->
      <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> 
      <!-- iServer 内置会话配置 -->         
      <session class="com.supermap.server.config.BuildInSessionSetting"> 
          <type>BuildIn</type>  
          <timeout>10000</timeout>  
          <checkLoggedInAnotherPlace>true</checkLoggedInAnotherPlace> 
          <loggedInAnotherPlaceProcessingStrategy>Notifying</loggedInAnotherPlaceProcessingStrategy> 
      </session> 
      <!-- iServer 加密算法及规格配置 -->                
      <encryption class="com.supermap.server.config.EncryptionSetting">           
        <serviceKeySettings>
          <serviceKeySetting>   
            <keyID>keyIDNAME</keyID>  
            <version>1.1</version>                     
            <algorithm>AES</algorithm>                     
            <keyLength>256</keyLength>                     
            <attributes>abcd</attributes>                 
          </serviceKeySetting>
        </serviceKeySettings>
        <sensitiveInfoKeySetting>
          <algorithm>SM4</algorithm>
          <keyLength>128</keyLength>
        </sensitiveInfoKeySetting>
      </encryption> 
    </security>

其中,

  1) 对于 iServer 内置会话,具体配置参数包括:

 2)对于 Redis 会话,具体配置参数包括:

3)对于PostgreSQL、Kingbase、GaussDB、Vastbase会话,四者配置方法相同,以PostgreSQL为例,具体配置参数包括 :

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

7. <repository>

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

8. <relayService> 元素

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

9.<license>元素

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

  <licenseMode>DefaultLicense</licenseMode>
  <license> 
    <enabledmodules>
        <string>ENTERPRISE</string> 
        <string>CHART</string>
        <string>NETWORK</string>
        <string>SPACE</string>
        <string>SPATIAL</string>
        <string>TRAFFIC_TRANSFER</string>
        <string>PLOT</string>
        <string>SITUATIONEVOLUTION</string>
        <string>SPATIAL_PROCESSING</string>
        <string>GEO_BLOCKCHAIN_SERVICE</string>
        <string>SPATIAL_STREAMING</string>
        <string>MACHINE_LEARNING_SERVICE</string>
        <string>IMAGE_SERVICE</string>
    </enabledmodules>
  </license> 

其中,

按核扩展模块的名称为在原扩展模块名称后加上核数信息,如机器学习服务(16核)扩展模块的名称为'MACHINE_LEARNING_SERVICE_16CORES'、机器学习服务(32核)扩展模块的名称为‘MACHINE_LEARNING_SERVICE_32CORES’。

 

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> 

具体参数描述如下:

注:多进程相关参数(除 workerCount 外)修改后,需要手动重启 iServer 生效。

11.<scheduledTasks>元素

用于设置定时相关任务,如服务器配置文件定时备份、资源定时回收等,示例如下:

  <scheduledTasks>
    <scheduledRestart>
      <enabled>true</enabled> 
      <restartTime>
        <hour>9</hour>
        <minute>35</minute>
      </restartTime>
      <dayOfWeek>1,2,3,4,5,6,7</dayOfWeek> 
      <restartDate>2023-11-1</restartDate> 
    </scheduledRestart>
    <scheduledBackup>
      <enabled>true</enabled> 
      <backupTime>
        <hour>10</hour>
        <minute>40</minute>
      </backupTime>
      <dayOfWeek>1,2,3</dayOfWeek> 
      <backupDate>2023-11-1</backupDate> 
    </scheduledBackup>
  </scheduledTasks> 

具体参数描述如下:

12.<spark>元素

      Spark 集群的基本配置:

13.<processing>元素

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

<processing>
     <enabled>true</enabled>
      <referToken>Token</referToken>
     <referServicesAddress/>
     <xmx>1024m</xmx>
     <workerPort>6765</workerPort>
     <defaultOutputType>UDBX</defaultOutputType>
     <rddStorageCount>10</rddStorageCount>
     <buildPyramid>false</buildPyramid>
     <publishService>true</publishService>
</processing>

       具体参数描述如下:

      注意:

      建议增加配置sparkSessionNoRebuild开关。启用此开关后,系统将不会因检测到Spark服务重启而自动重建SparkSession,从而避免相关报错。配置方式:在<processing>节点下新增<sparkSessionNoRebuild>true</sparkSessionNoRebuild> ,然后重启iserver,重启后iserver.log会出现“sparkSessionNoRebuild is set to true ”即设置成功。

14.<serviceInstanceManager>元素

用于服务实例动态化管理配置,示例如下:

  <serviceInstanceManager>
    <enableLazyInitService>true</enableLazyInitService> 
    <idleDispose>
      <enable>true</enable> 
      <checkPeriod>30000</checkPeriod>
      <maxIdleTime>30000</maxIdleTime>
    </idleDispose>
    <capacityLimit>
      <enable>true</enable> 
      <maxInstanceCount>2000</maxInstanceCount>
    </capacityLimit>
  </serviceInstanceManager>

其中,

15.<storages>元素

用于分布式切图库管理配置,示例如下:

  <storages>
    <storage> 
      <id>smtiles</id>  
      <tileSourceInfo class="com.supermap.services.tilesource.MongoDBTilesourceInfo">
        <datastoreType>TILES</datastoreType>  
        <type>MongoDB</type>
        <readPreference>primary,nearest,secondary</readPreference>
        <serverAdresses> 
          <string>172.16.120.199:27017</string> 
        </serverAdresses>  
        <database>smtiles</database>
      </tileSourceInfo> 
    </storage>
  </storages>

其中,

16.<dependencyServiceDetection>元素

用于服务器启动依赖项的可用性检测与异常等待机制的开启与配置,示例如下:

  <dependencyServiceDetection>
      <enabled>true</enabled>  
      <periodSeconds>5</periodSeconds>
      <timeoutSeconds>30</timeoutSeconds>  
      <failureThreshold>10</failureThreshold>
  </dependencyServiceDetection>

其中,

注:支持检测的启动依赖项如下表所示

功能 依赖项
许可 Web 许可中心
安全信息存储 MySQL 数据库、Oracle 数据库、PostgreSQL 数据库、华为 GaussDB 数据库、人大金仓 KingbaseES 数据库、海量数据库 Vastbase
会话信息存储 Redis 数据库、PostgreSQL 数据库、华为 GaussDB 数据库、人大金仓 KingbaseES 数据库、海量数据库 Vastbase
服务配置信息存储 Oracle 数据库、PostgreSQL 数据库、华为 GaussDB 数据库、人大金仓 KingbaseES 数据库、海量数据库 Vastbase
临时资源存储 Redis 数据库、MongoDB 数据库、非本机的 HSQL 数据库、PostgreSQL 数据库、华为 GaussDB 数据库、人大金仓 KingbaseES 数据库、海量数据库 Vastbase
多机集群 iServer 主节点

 

数据存储配置文件

数据存储配置文件 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>

GIS 服务动态加密配置文件

GIS 服务动态加密配置文件 iserver-svcworkkeymappings.xml,位于 config(【SuperMap iServer 安装目录】\webapps\iserver\WEB-INF\config)文件夹下,可用于防止数据爬取,提高服务器的安全性。配置文件中存储了待加密的 GIS 服务、加密密钥以及服务的 URL 请求之间的映射关系,即一个服务类型只能用一个密钥,该密钥用于这个服务类型下的多个 URL 请求。配置方法详见:GIS 服务动态加密配置