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> 元素,包括以下子节点元素:
其中的每一个 component 元素用于配置一个具体的服务组件。
注:用户发布服务的配置文件(iserver-services.xml)的 component 元素除以上属性外还支持 initPriority 属性,该属性代表 GIS 服务启动的优先级,优先级数值越高启动 iServer 时 GIS 服务启动顺序越靠前。
其中的每一个 provider 元素用于配置一个具体的服务提供者。
其中的每一个 componentSet 元素用于配置一个服务组件集合,每个服务组件集合可以引用多个服务组件。
其中的每一个 providerSet 元素用于配置一个服务提供者集合,每个服务提供者集合可以引用多个服务提供者。
内置服务配置文件 iserver-services-buildin.xml,包含 iServer 提供的几何服务的配置信息,根节点为 <application> 元素,包括以下子节点元素:
其中的每一个 componentSet 元素用于配置一个服务组件集合,每个服务组件集合可以引用多个服务组件。
其中的每一个 providerSet 元素用于配置一个服务提供者集合,每个服务提供者集合可以引用多个服务提供者。
其中的每一个 component 元素用于配置一个具体的服务组件。包含:
其中的每一个 provider 元素用于配置一个具体的服务提供者。
iserver-system.xml 包含了系统的配置信息,根节点为 <server> 元素,<server>节点目前主要包含 <properties> 、<management>、<hosts>、<clustering>、<harLog>、<queryFilter> 等子节点元素。
用于设置 SuperMap iServer 配置系统中全局性质的属性信息,如服务的默认输出路径和访问站点、环境检查与否的设置:
其中,全局属性 outputPath、outputSite 也可以通过服务管理器 WebManager 来设置,请参考全局属性设置。
用于统一设置 SuperMap iServer 文件上传相关配置,如上传文件最大体积、解压后最大体积、重名文件是否覆盖、存放目录等:
用于配置 SuperMap iServer 的元数据信息,iServer 的元数据信息含服务组件类型元数据(<component-types>)、服务提供者类型元数据(<provider-types>)和服务接口类型元数据(<interface-types>),以及安全配置(<security>)。
安全配置节点示例如下所示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | < 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 内置会话,具体配置参数包括:
3)对于PostgreSQL、Kingbase、GaussDB、Vastbase会话,四者配置方法相同,以PostgreSQL为例,具体配置参数包括 :
用于配置 SuperMap iServer 服务的宿主。可包含多个<host>,一个 host 的示例如下:
1 2 3 4 5 6 | < 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>的各项属性含义如下:
包含集群配置等应用。关于集群子节点相关元素的详细内容,请参考集群专题中利用配置文件管理集群。
用于配置服务访问日志,如是否启用服务访问日志,服务访问日志的文件名称,监控的服务 URI 地址的设置:
用于 SQL 查询时 attributeFilter 参数的过滤配置,防止 SQL 注入。这里的 SQL 注入,是指在进行 data 或 map 的 SQL 查询时,通过把非法的或违背用户意愿的字符串插入到 SQL 查询表达式中,欺骗服务器执行恶意的 SQL 命令。
用于设置临时资源的存储位置。详细信息请参考:临时资源的生命周期。
用于 iEdge 的中继服务配置,仅在 iEdge 产品中使用。
用于保存当前iServe的许可信息,包括正在使用的版本及扩展服务许可。详见在iServer中选择许可。示例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | < 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’。
用于配置多进程服务的相关信息。如进程数量、端口范围等,示例如下:
1 2 3 4 5 6 7 8 9 10 11 12 | < 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 生效。
用于设置定时相关任务,如服务器配置文件定时备份、资源定时回收等,示例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | < 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 > |
具体参数描述如下:
Spark 集群的基本配置:
用于分布式分析服务配置,示例如下:
1 2 3 4 5 6 7 8 9 10 11 | < 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 > |
具体参数描述如下:
<buildPyramid>:分布式内开启矢量金字塔,默认为false状态,即关闭
<publishService>:是否将分析结果发布为数据和地图服务,默认为true状态
注意:
建议增加配置sparkSessionNoRebuild开关。启用此开关后,系统将不会因检测到Spark服务重启而自动重建SparkSession,从而避免相关报错。配置方式:在<processing>节点下新增<sparkSessionNoRebuild>true</sparkSessionNoRebuild> ,然后重启iserver,重启后iserver.log会出现“sparkSessionNoRebuild is set to true ”即设置成功。
用于服务实例动态化管理配置,示例如下:
1 2 3 4 5 6 7 8 9 10 11 12 | < serviceInstanceManager > < enableLazyInitService >true</ enableLazyInitService > < idleDispose > < enable >true</ enable > < checkPeriod >30000</ checkPeriod > < maxIdleTime >30000</ maxIdleTime > </ idleDispose > < capacityLimit > < enable >true</ enable > < maxInstanceCount >2000</ maxInstanceCount > </ capacityLimit > </ serviceInstanceManager > |
其中,
用于分布式切图库管理配置,示例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | < 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 > |
其中,
用于服务器启动依赖项的可用性检测与异常等待机制的开启与配置,示例如下:
1 2 3 4 5 6 | < 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 元素用于配置一个具体的数据存储,包含以下属性:
示例如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <? 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 服务动态加密配置文件 iserver-svcworkkeymappings.xml,位于 config(【SuperMap iServer 安装目录】\webapps\iserver\WEB-INF\config)文件夹下,可用于防止数据爬取,提高服务器的安全性。配置文件中存储了待加密的 GIS 服务、加密密钥以及服务的 URL 请求之间的映射关系,即一个服务类型只能用一个密钥,该密钥用于这个服务类型下的多个 URL 请求。配置方法详见:GIS 服务动态加密配置