本文主要是介绍SOE接口调用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
访问https://localhost:6443/arcgis/rest/services/test/MapServer地址,在最下方有扩展支持
点击的时候就会调用handleRESTRequest方法,这时候返回的root资源的内容
ServerUtilities.createOperation第二个参数,如果操作有多个参数用逗号分开。
原代码中layers子资源的处理有问题getDataSource第一个参数不能为空。需要事先取得mapname,然后在此参数设置进去。
IMapServer3 ms = (IMapServer3) this.soHelper.getServerObject();
mapName = ms.getDefaultMapName();
-----------------------------------------------------------------------------
FeatureClass fc = new FeatureClass(
mapServerDataAccess.getDataSource(mapName, id));
摘录:
1.1 必选接口
1.1.1 IRESTRequestHandler 接口
该接口主要有下面两个方法:
string GetSchema();
byte[] HandleRESTRequest()
1.1.1.1 IRESTRequestHandler.handleRESTREquest() 方法主要有下面两个作用:
回调资源和操作的方法
获取资源在实例级别的描述
该方法在识别这两个作用的时候是通过operationName参数,如果该参数是空字符产那就是第二个作用,否则是第一个作用。
该方法的参数如下:
1. String capabilities:一组被资源授权的操作,可以为空字符串
2. String resourceName: 资源名称. 空字符串表示根级别,子资源会通过‘/’ 表示
3. String operationName: 操作名称
4. String operationInput: 操作的参数,JSON格式
5. String outputFormat:客户端请求的输出格式,如JSON,AMF
6. String[] responseProperties: 通过操作返回的一组键值对,逗号分开
1.1.1.2 IRESTRequestHandler.getSchema() 方法
以JSON格式返回SOE的资源列表
1.1.2 IServerObjectExtension
该接口主要有个方法:Init(IServerObjectHelper pSOH)和void Shutdown();
当Server启动的时候会调用该方法,并将IServerObjectHelper对象传入,该接口是对Server对象的弱引用,可以通过IServerObjectHelper.ServerObject得到服务器对象。
Shutdown方法用在服务器关闭时调用,经常我们在该方法中释放SOE中使用的资源。
1.2 可选接口
1.2.1 IObjectConstruct
该接口只有一个方法Construct,该方法在Init方法执行后,立即被执行,如果我们的SOE有配置属性,就可通过该方法的参数得到,该方法只调用1次,我们可以将SOE中用的的比较耗费资源的逻辑写在该方法中,比如:获取地图代码,或者你始终操作某一个图层,就可以把获取该图层的代码写在这里。
1.2.2 IObjectActivate
当init和Construct调用后,SOE的对象已经被创建,并且相应的配置信息也得到了,如果SOE的整个逻辑中需要不停的获取和释放服务器上下文,那么就必须实现改接口,改接口有两个方法: activate()和deactivate(),当客户端调用CreateServerContext()
的时候activate()方法被调用,当客户端释放服务器上下文对象时deactivate()方法被调用。
这篇关于SOE接口调用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!