开发REST服务器对象扩展(SOE)的模式是创建一个Java类,该类实现必需的IServerObjectExtension和IRestRequestHandler接口。IServerObjectExtension接口提供在启动和关闭地图服务时调用的init()和shutdown()方法,而IRestRequestHandler方法则处理对SOE的HTTP请求。
- 使用SOE Eclipse向导创建REST SOE
使用SOE Eclipse向导创建REST SOE
Step 0. Ensure that the "bin" folder in a JDK (version 1.6.0_41 or above) is added to the PATH environment variable.
Step 1. Ensure that the Java ArcObjects software development kit (SDK) is installed on your computer. The SDK provides access to libraries required for developing ArcObjects Java extensions, as well as the Eclipse plugins that hold Java extension creation and export wizards.
Step 2. Ensure that ArcGIS Eclipse plugins are installed in your copy of Eclipse. The minimum supported version of Eclipse is Helios Update 2. For instructions on how to install ArcGIS Eclipse plugins, see the "Using ESRI Eclipse Plugins" topic in "Developing Desktop Applications" -> "Using ESRI Eclipse Plugins" section of the ArcGIS Java Developer Help.
Step 3. Create a new Eclipse Java project, or use an existing one.
Step 4. Create a new REST SOE. Call it “SimpleRESTSOE”.
With your project selected, right click your source folder, typically 'src' and select “New -> Other …” from the context window. The “New…” dialog will pop up with a list of wizards. Note that these wizards become available only after the ArcGIS Eclipse plugins are installed.
现在,您有了一个名为“ SimpleRESTSOE”的REST资源,其中包含一个子资源和一个操作。
向SOE添加业务逻辑
- 在IServerObjectExtension接口中声明的init()和shutdown()方法分别在实例化和销毁SOE时被调用。这些方法是SOAP和REST SOE所共有的。
- getLayerCountByType()方法对应于同名的REST操作。这是此REST操作的建议实现点。
- getRootResource()方法对应于根资源(SOE本身)。由向导生成的实现包括在其中创建一个名称为SOE的JSON对象。可以对其进行自定义,以向根资源添加更多信息,例如描述。
- 生成getSubResourcelayers()方法存根以保存“ layers”子资源的业务逻辑。因此,这是此子资源的建议实现点。
- invokeRESTOperation()方法是一种内部方法,用于提供在运行时调用正确的REST操作所需的所有内部逻辑。除非将新的REST操作添加到SOE和/或删除或修改现有的REST操作,否则您无需修改此方法。
- handleRESTRequest()方法是运行时REST SOE的入口点。服务器的REST处理程序将调用此方法,并且有关REST请求的所有信息都可用于此方法。仅当添加新的子资源或删除现有的子资源时,才需要修改此方法。
- getSchema()方法以JSON格式返回RESTSOE的资源层次结构。如果使用Eclipse IDE向导创建SOE,则将根据您在“ REST支持”页面上指定的资源层次结构自动生成此方法。仅当您希望在Eclipse向导创建SOE之后修改资源层次结构时,才应修改此方法。