模块配置文件
模块配置文件是一个无后缀的文件,用于配置该模块的表述生成器、参数解析器、 资源配置文件位置等。文件位于:Jar:///META-INF/extensions/services/rest 位置。
内容例如:
encoders=<表述生成器实现类的全路径>
decoders=<参数解析器实现类的全路径>
verifiers=<安全校验实现类的全路径>
resourceFiles=<资源配置文件路径>
其中:
- encoders/decoders:指定表述生成器/参数解析器的实现类全路径,多个实现类之间以“;”(英文分号)分隔;
- verifiers:安全校验实现类的全路径,扩展安全机制时用到;
- resourceFiles:资源配置 XML 文件(Jar 包中的路径,相对于 Jar 包根目录)。
扩展现有 REST 资源时,要求模块配置文件名跟预扩展的资源模块一致。
iServer 已有的功能模块与模块配置文件的对应关系,如下表所示:
模块 | 模块配置文件名 |
地图模块 |
mapRest |
数据模块 |
dataRest |
空间分析模块 |
spatialAnalystRest |
交通网络分析模块 |
networkanalystRest |
三维模块 |
realspaceRest |
资源配置文件
资源配置文件是一个 XML 文件,用于配置 REST 资源信息,可配置资源 ID、资源实现类等,跟模块配置文件一同确定 REST 资源。
SuperMap iServer 现有的 REST 资源有 Restlet、JAX-RS 两种实现机制,两种 REST 服务发布机制下,资源配置文件的结构有差别。
基于 Restlet 机制实现的资源,资源配置文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<resource>
<configID>rectangleArea</configID>
<urlTemplate>/maps/{mapName}/rectangleArea</urlTemplate>
<resourceType>ArithmeticResource</resourceType>
<implementClass>com.supermap.sample.extendREST.
RectangleAreaResource</implementClass>
<extensionEncoderBeanNames></extensionEncoderBeanNames>
<extensionDecoderBeanNames></extensionDecoderBeanNames>
</resource>
</resources>
其中:
- configID:资源配置项 ID;
- urlTemplate:资源的 URI 模板,确定资源访问的 URI;
- resourceType:资源的类型,参见 com.supermap.services.rest.commontypes.ResourceType;
- implementClass:资源实现类的全路径。
- extensionEncoderBeanNames:表述生成器的类名。
- extensionDecoderBeanNames:参数解析器的类名。
<resources/>标签中可以配置多个<resource/>标签,对应多个资源。
基于 JAX-RS 机制实现的资源,资源配置文件如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<resource>
<configID>mybuffer</configID>
<implementClass>com.supermap.sample.extend.
MyBufferResultsResource</implementClass>
</resource>
</resources>
其中:
- configID:资源配置项 ID;
- implementClass:资源实现类的全路径。
<resources/>标签中可以配置多个<resource/>标签,对应多个资源。
扩展现有 REST 资源时,要求资源配置文件路径跟预扩展的资源模块一致。
iServer 已有的功能模块与资源配置文件的对应关系,如下表所示:
模块 | 资源配置文件路径(iserver-all-*.jar 中) |
地图模块 |
resource/rest/mappingResources.xml |
数据模块 |
resource/rest/dataResources.xml |
空间分析模块 |
resource/rest/spatialanalystResources.xml |
交通网络分析模块 |
resource/rest/networkanalystResources.xml |
三维模块 |
resource/rest/realspaceResources.xml |