ArcGIS Server Java ADF 案例教程 43

一 Server Object Extensions

Server Object Extensions(以下简称SOE)是Server Object的扩展,比如MapServer、GPServer等等。和Utility Objects不同,SOE只在Server Object被创建的时候被初始化,它的生命周期和Server Object是相同的。相比Utility Objects,SOE有以下的一些特点:

Ø 开发人员不需要手动实例化SOE,SOE是在Server Object被创建的同时被实例化的

Ø ArcGIS Server的管理程序可以显示SOE的参数配置

Ø SOE的运行信息将被记录到ArcGIS Server的日志中去

Ø SOE的功能可以通过SOAP访问

更直观一点,让我们看一下下面这张截图,这是一个添加了一个自定义SOE的Map Service管理界面:

图 30 添加了SOE的Map Service

是不是可以把SOE理解成一个服务的自定义Capability?似乎ESRI就是这样理解的。那下面我们就通过自定义一个新的Capability来看看SOE的用法。

二 创建一个自定义的Server Object Extension【案例】

首先,我们使用IDE插件来帮助我们新建这个SOE,打开菜单的【File】-【New】-【Server Object Extension】打开新建窗口,如图 31;然后在如图 32的属性页中做些自定义的编辑,ArcGIS插件会自动新建一些类和配置文件。

31 新建SOE窗口

32 编辑一些SOE的属性

好,现在虽然我们没有添加什么实质的功能代码,但是SOE的框架已经起来了,让我们尝试部署这个SOE到ArcGIS Server中去。

首先,右键工程,选择【Export】,找到Java文件夹下的JAR文件选项,把这个SOE导出成jar包;然后,复制这个jar文件到 %ARCGISHOME%/java/lib/ext 目录下;最后,需要用一个工具添加这个SOE到Map Service,这个工具叫SOMManager,你可以在 %ARCGISHOME%/java/tools目录下打开控制台,然后执行以下命令:

soemanager -a [server name] [domain name] [username] [password] [fully qualified SOE name] [SOE display name]

比如上面在wuyf命名空间下新建了一个NMEAServerObjectExt类,因此大概的命令就是如下这个样子的:

soemanager -a localhost localhost arcgismanager passwd wuyf.NMEAServerObjectExt NMEA

好了,下面在添加一个新的Map Service的时候就可以看到一个新的Capability了:

图 33 自定义的NMEA Capability

你可能感兴趣的:(java,配置管理,ext,ide,SOAP)