SOE接口调用

2024-02-09 17:58
文章标签 接口 调用 soe

本文主要是介绍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接口调用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/694918

相关文章

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

go中空接口的具体使用

《go中空接口的具体使用》空接口是一种特殊的接口类型,它不包含任何方法,本文主要介绍了go中空接口的具体使用,具有一定的参考价值,感兴趣的可以了解一下... 目录接口-空接口1. 什么是空接口?2. 如何使用空接口?第一,第二,第三,3. 空接口几个要注意的坑坑1:坑2:坑3:接口-空接口1. 什么是空接

在C#中调用Python代码的两种实现方式

《在C#中调用Python代码的两种实现方式》:本文主要介绍在C#中调用Python代码的两种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录C#调用python代码的方式1. 使用 Python.NET2. 使用外部进程调用 Python 脚本总结C#调

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

Vue 调用摄像头扫描条码功能实现代码

《Vue调用摄像头扫描条码功能实现代码》本文介绍了如何使用Vue.js和jsQR库来实现调用摄像头并扫描条码的功能,通过安装依赖、获取摄像头视频流、解析条码等步骤,实现了从开始扫描到停止扫描的完整流... 目录实现步骤:代码实现1. 安装依赖2. vue 页面代码功能说明注意事项以下是一个基于 Vue.js

如何用java对接微信小程序下单后的发货接口

《如何用java对接微信小程序下单后的发货接口》:本文主要介绍在微信小程序后台实现发货通知的步骤,包括获取Access_token、使用RestTemplate调用发货接口、处理AccessTok... 目录配置参数 调用代码获取Access_token调用发货的接口类注意点总结配置参数 首先需要获取Ac

讯飞webapi语音识别接口调用示例代码(python)

《讯飞webapi语音识别接口调用示例代码(python)》:本文主要介绍如何使用Python3调用讯飞WebAPI语音识别接口,重点解决了在处理语音识别结果时判断是否为最后一帧的问题,通过运行代... 目录前言一、环境二、引入库三、代码实例四、运行结果五、总结前言基于python3 讯飞webAPI语音

MyBatis-Plus中Service接口的lambdaUpdate用法及实例分析

《MyBatis-Plus中Service接口的lambdaUpdate用法及实例分析》本文将详细讲解MyBatis-Plus中的lambdaUpdate用法,并提供丰富的案例来帮助读者更好地理解和应... 目录深入探索MyBATis-Plus中Service接口的lambdaUpdate用法及示例案例背景

Java8需要知道的4个函数式接口简单教程

《Java8需要知道的4个函数式接口简单教程》:本文主要介绍Java8中引入的函数式接口,包括Consumer、Supplier、Predicate和Function,以及它们的用法和特点,文中... 目录什么是函数是接口?Consumer接口定义核心特点注意事项常见用法1.基本用法2.结合andThen链

C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)

《C#集成DeepSeek模型实现AI私有化的流程步骤(本地部署与API调用教程)》本文主要介绍了C#集成DeepSeek模型实现AI私有化的方法,包括搭建基础环境,如安装Ollama和下载DeepS... 目录前言搭建基础环境1、安装 Ollama2、下载 DeepSeek R1 模型客户端 ChatBo