arcgis 服务对象扩展(soe)新手自学笔记(3):rest soe模板下

arcgis 服务对象扩展(soe)新手自学笔记(3):rest soe模板下

ID:18769526

大小:548.50 KB

页数:9页

时间:2018-09-23

arcgis 服务对象扩展(soe)新手自学笔记(3):rest soe模板下_第1页
arcgis 服务对象扩展(soe)新手自学笔记(3):rest soe模板下_第2页
arcgis 服务对象扩展(soe)新手自学笔记(3):rest soe模板下_第3页
arcgis 服务对象扩展(soe)新手自学笔记(3):rest soe模板下_第4页
arcgis 服务对象扩展(soe)新手自学笔记(3):rest soe模板下_第5页
资源描述:

《arcgis 服务对象扩展(soe)新手自学笔记(3):rest soe模板下》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、1.RESTSOE  当客户端使用REST方式发送SOE请求时,实际上是利用HTTP协议发送了一个请求字符串,ArcServer获得该字符串后会将其解析成一系列命令执行,并返回JSON数据。  返回的JSON格式数据如下: 2.创建RESTSOE  (1)提醒    为了确保你创建的RESTSOE能够成功执行,你需要仔细考虑一下向服务器端发送请求的数据类型和你希望返回的数据。    一个RESTSOE通常包含资源和操作两部分(Resource和Operation):    Resource---可以从服务器端获取的一系列信息。它类似于类中暴露出的某一个属

2、性;    Operation---服务器端根据发送的请求进行一系列的操作。在Operation执行完后,你可以获得文本、图片或其他类型的数据。可以将Operation看做类中的一个方法。    在为自己的RESTSOE编写代码之前,我们需要明确他所需要的Resource和Operation。http://ming.ttplay8.cn有必要画出一个图表,并标记出它们的输入输出参数,RESTSOE可以包含多个资源和操作,作为初学者最好制定一个操作。  (2)RESTSOE模板     现在我们创建一个完整的SOE,在VS2010中新建一个项目,选择Ser

3、verObjectExtention,并在右边选择REST模板,如下图:  需要注意一般情况下,Vs2010会默认.NET4.0环境,这时候你看不到右边的模板,你只需选择.NET3.5即可。   点击确定创建模板后,Vs会为我们自动生成一系列代码,下面我们简要介绍一下该模板:  SOE的真身其实就是一个COM组件,每个Com组件都会有一个GUID作为标识。  我们的SOE模板中实现了一系列的类和接口,我们来认识一下这些类和接口:  ServicedComponent---SOE的基类,不需要对他做任何事;  IServerObjectExtension-

4、--包含Init和ShutDown两个函数用来启动和停止SOE;  IObjectConstruct---只有一个Construct方法,只在SOE启动时运行一次,用来放置一些不需要在每次请求都运行的逻辑;  IRESTQuestHandler---使用RESTSOE必要的接口,用来获取请求并返回处理结果。他的方法主要用来创建Schema和处理Requests。 http://tuan.qqq23.com  在该模板的构造函数中,你会看到如下代码:  SoeRestImpl类主要由以下作用:  *验证SOE的Schema  *验证HandlerRESTR

5、equest请求的resourceName和OperationName  *验证SOE的Capabilities  *记录服务请求和返回  *处理错误  SoeRestImpl类实现了IRESTRequestHandler接口。通常情况下SOE工程中都会有一个该类的实例和一个IRESTRequestHandler接口的引用。1、CreateRESTSchema()和Handlefunction  CreateRESTSchema函数中定义了在你的SOE中可以获取的Resource和Operation,每一个Resource和Operation都与一个处理

6、函数(handlefunction)相关联。该处理函数用来在Resource或Operation被触发时,描述所要进行的处理操作。这里面就是你需要编写大量AO代码的地方。  在RESTSOE模板中,有一个处理resource逻辑的RootRESTHandler函数,他返回一个简单的JSON格式的字符串  一个resource的handlerfunction实际上是一个在SOESupport类库中的代理(delegate),这意味着所有的resource的处理函数都有一个类似的函数签名。   在RESTSOE模板中包含了一个Operation的handle

7、rfunction。在此例中,该函数反序列化了两个字符串参数‘param1’和‘param2’,并且把它们作为JSON格式对象返回给客户端。  同resource的处理函数一样,Operation的处理函数也是一个代理。该方法中出了一个OperationInput参数外,与resource处理函数一样。operationInput中包含了该operation中需要的参数。比如当你想要实现缓冲区查询时,该对象会包含一个point和distance参数。  在该函数中另一个需要关心的问题是,如何反序列化输入的JSONObject和将得到的结果序列化成客户端能

8、接受的JSON数据。反序列化和序列化JSONObject有时是个很棘手的问题。(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。