soe 开发 java_Java环境下SOE—Rest开发之1(初识)

2023-11-06 00:30
文章标签 java 初识 开发 环境 rest soe

本文主要是介绍soe 开发 java_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开发帮助手册。

0818b9ca8b590ca3270a3433284dd417.png

2.在做SOE开发的时候,还必须理解@ServerObjectExtProperties注释,它是在进行SOE部署时,显示的注释对,具体解释如下:

ldisplayName—当你作为管理员进行ArcGIS Server管理时,这个名称会作为在ArcGIS Server Manager或者ArcMap Catalog窗口中的SOE显示名称。

ldescription—这个主要用于简单描述SOE的功能,使用方法,在ArcGIS Server Manager或者ArcMap Catalog部署窗口中会显示。

lproperties—这里主要是作为SOE程序的一些外部输入参数,用于和SOE程序进行交互,这个属性可以作为SOE程序运行的全局属性来进行使用。

lallSOAPCapabilities—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.

ldefaultSOAPCapabilites—This parameter’s value lists all web capabilitiesthat are enabled on the SOE by default。

3)接口说明:

lcom.esri.arcgis.system.IObjectConstruct

这个接口是只有在ArcGIS Server Manager.中有必要输入属性,使其作为SOE的全局变量时才需要继承,它提供了一个非常简单的方法construct(),这个方法是在SOE创建之后,进行init()初始化之后调用,可以通过这方法获取输入参数。

lcom.esri.arcgis.system.IObjectActivate

这是一个可选的继承接口,除非你需要在服务Request请求之前或之后有逻辑性的操作,不由可以不需要继承这个接口。

·activate()—客户端做一次请求之前执行。

·deactivate()—客户端请求一次完成执行.

lcom.esri.arcgis.system.IRESTRequestHandler

如果你想使用Rest WebService作为你的SOE开发扩展的话,必须继承IRESTRequestHandler接口,这个接口提供了两个方法:

·handleRESTRequest()—每次进行Http请求时执行.

·getSchema()—用于在SOE运行时,询问ArcGIS REST handler资源及操作的层次结构。

如果你是用Eclipse向导来进行SOE开发的话,这两方法是自动生成的,这样你便可以专注于你的资源方法及操作方法的实施。

这篇关于soe 开发 java_Java环境下SOE—Rest开发之1(初识)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



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

相关文章

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Java String字符串的常用使用方法

《JavaString字符串的常用使用方法》String是JDK提供的一个类,是引用类型,并不是基本的数据类型,String用于字符串操作,在之前学习c语言的时候,对于一些字符串,会初始化字符数组表... 目录一、什么是String二、如何定义一个String1. 用双引号定义2. 通过构造函数定义三、St

springboot filter实现请求响应全链路拦截

《springbootfilter实现请求响应全链路拦截》这篇文章主要为大家详细介绍了SpringBoot如何结合Filter同时拦截请求和响应,从而实现​​日志采集自动化,感兴趣的小伙伴可以跟随小... 目录一、为什么你需要这个过滤器?​​​二、核心实现:一个Filter搞定双向数据流​​​​三、完整代码

SpringBoot利用@Validated注解优雅实现参数校验

《SpringBoot利用@Validated注解优雅实现参数校验》在开发Web应用时,用户输入的合法性校验是保障系统稳定性的基础,​SpringBoot的@Validated注解提供了一种更优雅的解... 目录​一、为什么需要参数校验二、Validated 的核心用法​1. 基础校验2. php分组校验3

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Java Predicate接口定义详解

《JavaPredicate接口定义详解》Predicate是Java中的一个函数式接口,它代表一个判断逻辑,接收一个输入参数,返回一个布尔值,:本文主要介绍JavaPredicate接口的定义... 目录Java Predicate接口Java lamda表达式 Predicate<T>、BiFuncti

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Spring Security方法级安全控制@PreAuthorize注解的灵活运用小结

《SpringSecurity方法级安全控制@PreAuthorize注解的灵活运用小结》本文将带着大家讲解@PreAuthorize注解的核心原理、SpEL表达式机制,并通过的示例代码演示如... 目录1. 前言2. @PreAuthorize 注解简介3. @PreAuthorize 核心原理解析拦截与

一文详解JavaScript中的fetch方法

《一文详解JavaScript中的fetch方法》fetch函数是一个用于在JavaScript中执行HTTP请求的现代API,它提供了一种更简洁、更强大的方式来处理网络请求,:本文主要介绍Jav... 目录前言什么是 fetch 方法基本语法简单的 GET 请求示例代码解释发送 POST 请求示例代码解释