Java环境下SOE—Rest开发之1(初识)
分享
在ArcGIS中作为粗粒度和数据进行交流的对象被称为Server Object.这些Server Object提供了对ArcGIS Server服务进行访问、操作、分析和显示数据的能力,例如:在通过Map Server Object访问地图内容,通过一个locator开发进行地图定位,通过GP Server Object可以进行地理处理,这些Server Object能为交通、通讯等行业提供地理信息服务:如地图服务、地理编码服务及GP服务。
但这些没有进行组装的ServerObject没法为行业提供完整的流程化处理,因此,在ArcGIS服务器中我们需要一个可扩展的框架,它允许创建可扩展的服务器对象,并构建定制解决方法,这种扩展服务器对象的开发方法叫SOE开发方法。
在ArcGIS 10.1中ArcGISServer不在支持DCOM方式的连接,这也就意味着我们不能通过本地方式的连接使用ArcObjects提供的更多功能,所以我们推荐这种新的方式来实现这些功能,这种方式就是SOE服务器对象扩展。
对于开发的必要性:SOE只需要创建一次,是存在于整个服务对象的生存期内的,所以它可以缓存信息、重复使用,同时也说明它开销也是非常昂贵的,在考虑是否有必要使用SOE进行扩展时也要考虑这点。
开发者的要求:比较适合那些有多种平台工作经验的开发者,开发一个SOE通常会用到AO、.NET或Java、REST或SOAP Web服务通信技术。
SOE支持SOAP(SOAP是构建web服务的一种手段,通过XML通信)和REST(表状性状态转移,可以充分利用Web服务是一个无状态的客户端通过URL进行资源定位,简化http协议约束)两种访问方式,其通过强大的AO来扩展服务对象,并可以在一个没有AO的客户端中运行,下面主要以Rest访问方式展开叙述。
1. SOE存在于整个服务对象的生存期内,一个SOE通常在服务对象创建是初始化,并且在整个服务对象的生存期内只会被创建一次,SOE有两个必备接口,init()和shutdown().分别用于soe程序的初始化及注销,具体内容请见AO开发帮助手册。
2. 在做SOE开发的时候,还必须理解@ServerObjectExtProperties注释,它是在进行SOE部署时,显示的注释对,具体解释如下:
l displayName—当你作为管理员进行ArcGIS Server管理时,这个名称会作为在ArcGIS Server Manager或者ArcMap Catalog窗口中的SOE显示名称。
l description—这个主要用于简单描述SOE的功能,使用方法,在ArcGIS Server Manager 或者ArcMap Catalog部署窗口中会显示。
l properties—这里主要是作为SOE程序的一些外部输入参数,用于和SOE程序进行交互,这个属性可以作为SOE程序运行的全局属性来进行使用。
l allSOAPCapabilities—When exposing your SOE as a web service, you cancreate functionality that can be enabled or disabled by an administrator ofArcGIS for Server. Such functionality is called a “web capability”. Thisparameter’s value is a comma-separated list that holds all capabilities exposedby an SOE.
l defaultSOAPCapabilites—This parameter’s value lists all web capabilitiesthat are enabled on the SOE by default。
3)接口说明:
l com.esri.arcgis.system.IObjectConstruct
这个接口是只有在ArcGIS Server Manager.中有必要输入属性,使其作为SOE的全局变量时才需要继承,它提供了一个非常简单的方法construct(),这个方法是在SOE创建之后,进行init()初始化之后调用,可以通过这方法获取输入参数。
l com.esri.arcgis.system.IObjectActivate
这是一个可选的继承接口,除非你需要在服务Request请求之前或之后有逻辑性的操作,不由可以不需要继承这个接口。
·activate()—客户端做一次请求之前执行。
·deactivate()—客户端请求一次完成执行.
l com.esri.arcgis.system.IRESTRequestHandler
如果你想使用Rest WebService作为你的SOE开发扩展的话,必须继承IRESTRequestHandler接口,这个接口提供了两个方法:
·handleRESTRequest()—每次进行Http请求时执行.
· getSchema()—用于在SOE运行时,询问ArcGIS REST handler资源及操作的层次结构。
如果你是用Eclipse向导来进行SOE开发的话,这两方法是自动生成的,这样你便可以专注于你的资源方法及操作方法的实施。
文章来源:http://blog.csdn.net/esrichinacd/article/details/8200196
但这些没有进行组装的ServerObject没法为行业提供完整的流程化处理,因此,在ArcGIS服务器中我们需要一个可扩展的框架,它允许创建可扩展的服务器对象,并构建定制解决方法,这种扩展服务器对象的开发方法叫SOE开发方法。
在ArcGIS 10.1中ArcGISServer不在支持DCOM方式的连接,这也就意味着我们不能通过本地方式的连接使用ArcObjects提供的更多功能,所以我们推荐这种新的方式来实现这些功能,这种方式就是SOE服务器对象扩展。
对于开发的必要性:SOE只需要创建一次,是存在于整个服务对象的生存期内的,所以它可以缓存信息、重复使用,同时也说明它开销也是非常昂贵的,在考虑是否有必要使用SOE进行扩展时也要考虑这点。
开发者的要求:比较适合那些有多种平台工作经验的开发者,开发一个SOE通常会用到AO、.NET或Java、REST或SOAP Web服务通信技术。
SOE支持SOAP(SOAP是构建web服务的一种手段,通过XML通信)和REST(表状性状态转移,可以充分利用Web服务是一个无状态的客户端通过URL进行资源定位,简化http协议约束)两种访问方式,其通过强大的AO来扩展服务对象,并可以在一个没有AO的客户端中运行,下面主要以Rest访问方式展开叙述。
1. SOE存在于整个服务对象的生存期内,一个SOE通常在服务对象创建是初始化,并且在整个服务对象的生存期内只会被创建一次,SOE有两个必备接口,init()和shutdown().分别用于soe程序的初始化及注销,具体内容请见AO开发帮助手册。
2. 在做SOE开发的时候,还必须理解@ServerObjectExtProperties注释,它是在进行SOE部署时,显示的注释对,具体解释如下:
l displayName—当你作为管理员进行ArcGIS Server管理时,这个名称会作为在ArcGIS Server Manager或者ArcMap Catalog窗口中的SOE显示名称。
l description—这个主要用于简单描述SOE的功能,使用方法,在ArcGIS Server Manager 或者ArcMap Catalog部署窗口中会显示。
l properties—这里主要是作为SOE程序的一些外部输入参数,用于和SOE程序进行交互,这个属性可以作为SOE程序运行的全局属性来进行使用。
l allSOAPCapabilities—When exposing your SOE as a web service, you cancreate functionality that can be enabled or disabled by an administrator ofArcGIS for Server. Such functionality is called a “web capability”. Thisparameter’s value is a comma-separated list that holds all capabilities exposedby an SOE.
l defaultSOAPCapabilites—This parameter’s value lists all web capabilitiesthat are enabled on the SOE by default。
3)接口说明:
l com.esri.arcgis.system.IObjectConstruct
这个接口是只有在ArcGIS Server Manager.中有必要输入属性,使其作为SOE的全局变量时才需要继承,它提供了一个非常简单的方法construct(),这个方法是在SOE创建之后,进行init()初始化之后调用,可以通过这方法获取输入参数。
l com.esri.arcgis.system.IObjectActivate
这是一个可选的继承接口,除非你需要在服务Request请求之前或之后有逻辑性的操作,不由可以不需要继承这个接口。
·activate()—客户端做一次请求之前执行。
·deactivate()—客户端请求一次完成执行.
l com.esri.arcgis.system.IRESTRequestHandler
如果你想使用Rest WebService作为你的SOE开发扩展的话,必须继承IRESTRequestHandler接口,这个接口提供了两个方法:
·handleRESTRequest()—每次进行Http请求时执行.
· getSchema()—用于在SOE运行时,询问ArcGIS REST handler资源及操作的层次结构。
如果你是用Eclipse向导来进行SOE开发的话,这两方法是自动生成的,这样你便可以专注于你的资源方法及操作方法的实施。
文章来源:http://blog.csdn.net/esrichinacd/article/details/8200196
0 个评论
推荐内容
- ArcGIS Pro 2.4向独立server发布服务步骤
- Linux上安装ArcGIS Enterprise超详细教程——以Redhat7.2上安装ArcGIS Enterprise 10.5为例
- ArcGIS for Server 10.x 许可授权手册
- Portal for ArcGIS 10.X许可授权手册 (Windows版)
- arcgis server 无法手动删除切片
- ArcGIS for Server内置JS Viewer的离线部署和配置
- Linux上安装ArcGIS for Server超详细教程——以Redhat6.5上安装ArcGIS for Server 10.3.1为例
- 如何创建Geometry Service?
- 地图服务优化策略
相关问题
- arcgis Api for java script 4.4部署离线环境
- CityEngine做的三维环境可以在移动端显示吗?
- javascript api for gis 开发环境配置
- 前端通过FeatureLayer请求rest要素服务,有返回值,但是不能添加至地图上
- arcgis runtime 是不是放弃对java的支持了?
- 使用java代码如何调用镶嵌数据集录入栅格的功能
- ArcGIS Pro2.8使用深度学习分类像素中环境使用GPU报错?
- 为什么做欧氏距离出来的道路影响范围没有覆盖整个作业区呢?有大神说要设置掩膜,但是我的10.2一设置环境就会提示失败
- 大神,请问下arcgis for android runtime100.6怎么加载分组的地图服务(rest)?
- Java 用GP执行Union时,对Union对象如何传in_features参数?
- arcgis pro发布三维场景服务成功,但是arcgis server无rest url,请问api该如何调用场景?敬请各位的解答,谢谢。