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> 元素,包括以下子节点元素:
其中的每一个 component 元素用于配置一个具体的服务组件。
其中的每一个 provider 元素用于配置一个具体的服务提供者。
其中的每一个 componentSet 元素用于配置一个服务组件集合,每个服务组件集合可以引用多个服务组件。
其中的每一个 providerSet 元素用于配置一个服务提供者集合,每个服务提供者集合可以引用多个服务提供者。
iserver-system.xml 包含了系统的配置信息,根节点为 <server> 元素,<server>节点目前主要包含 <properties> 、<management>、<hosts>、<clustering>、<harLog>、<queryFilter> 子节点元素。
用于设置 SuperMap iServer 配置系统中全局性质的属性信息,如服务的默认输出路径和访问站点、环境检查与否的设置:
其中,全局属性 outputPath、outputSite 也可以通过服务管理器 WebManager 来设置,请参考全局属性设置。
用于配置 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 数据库连接池的配置。具体参数如下:
用于配置 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>的各项属性含义如下:
包含集群配置等应用。关于集群子节点相关元素的详细内容,请参考集群专题中利用配置文件管理集群。
用于配置服务访问日志,如是否启用服务访问日志,服务访问日志的文件名称,监控的服务 URI 地址的设置:
用于 SQL 查询过滤配置,防止 SQL 注入。这里的 SQL 注入,是指在进行 data 或 map 的 SQL 查询时,通过把非法的或违背用户意愿的字符串插入到 SQL 查询表达式中,欺骗服务器执行恶意的 SQL 命令。
用于设置临时资源的存储位置。详细信息请参考:临时资源的生命周期。
用于 iExpress 的中继服务配置,仅在 iExpress 产品中使用。
用于保存当前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> 中包含了使用的许可名称,具体包括:
用于配置多进程服务的相关信息。如进程数量、端口范围等,示例如下:
<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>
具体参数描述如下: