当前位置: 首页 > news >正文

ArcGIS Server Java ADF 案例教程 37

二 IServerContext详解

在ADF中使用Local方式去连接服务产生的资源是AGSLocalMapResource[1] ,它有一个方法是getServerContext,返回的是一个实现了IServerContext[2] 接口的对象。这个接口在ADF调用AO的过程中很重要,下面我们来详细谈一下这个接口。

当我们的ADF应用使用Local的方式去连接服务,那么在发生请求并连接到ArcGIS Server的时候,在服务器上就会产生一个服务器环境对象(server context),这个对象可以被理解为这个Local连接的服务器环境,ADF会在这个连接中处理所有的请求,因此处理请求时产生和使用的所有AO对象都被存放在这个服务器环境中。IServerContext就是访问这个服务器环境的接口。

IServerContext最重要的方法就是createObject,它的作用就是通过CLSID来在服务器环境中新建一个AO对象。或许你有这样的疑问,为什么不能直接new一个对象呢?如果你new了一个对象,这个对象是在ADF应用中的;而AO对象实际是在ArcGIS Server的服务器环境中,在ADF中使用的只是这个对象的代理,因此不能new出这样的对象,而应该通过IServerContext来创建、获得AO对象。

下面的代码在ADF中新建了一个Point类型的AO对象:

Object point = serverContext.createObject(com.esri.arcgis.geometry.Point.getClsid ());

另外,在ADF中还有一个AGSLocalUtil工具类可以将AGSLocalMapResource中获得的SOAP对象转化为AO对象,在下一小节中我们会看到这个工具类的用法。


[1] com.esri.adf.web.ags.data.AGSLocalMapResource

[2] com.esri.arcgis.server.IServerContext

相关文章:

  • 【ROS-Navigation】Costmap2D代价地图源码解读-静态层StaticLayer
  • ArcGIS Server Java ADF 案例教程 38
  • 【ROS-Navigation】Costmap2D代价地图源码解读-障碍层ObstacleLayer
  • 通信运营商如何理性应对带号转网(2)
  • 【ROS-Navigation】Costmap2D代价地图源码解读-膨胀层InflationLayer
  • 【ROS-Navigation】Recovery Behavior恢复行为源码解读
  • 拆解组装SQL字符串全过程
  • ROS局部规划器中的轨迹模拟策略-DWA使用与否的差别
  • 商业智能在中国企业的成熟应用,还需要以业务为核心。
  • 【全局路径规划】人工势场 Artificial Potential Field
  • 用Linux替代Windows
  • 【全局路径规划】A*算法 A* Search Algorithm
  • 【局部路径规划】DWA动态窗口法 Dynamic Window Approach
  • 【运动规划】人工势场构造扩展多点人工势场组合控制高自由度机器人
  • 【运动规划】BFP搜索Best-First Planner及填充势场Local minima
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • css选择器
  • Docker: 容器互访的三种方式
  • download使用浅析
  • Electron入门介绍
  • javascript从右向左截取指定位数字符的3种方法
  • Java精华积累:初学者都应该搞懂的问题
  • js中forEach回调同异步问题
  • Three.js 再探 - 写一个跳一跳极简版游戏
  • Webpack入门之遇到的那些坑,系列示例Demo
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 飞驰在Mesos的涡轮引擎上
  • 分布式熔断降级平台aegis
  • 如何胜任知名企业的商业数据分析师?
  • 携程小程序初体验
  • 在Docker Swarm上部署Apache Storm:第1部分
  • HanLP分词命名实体提取详解
  • 回归生活:清理微信公众号
  • ​520就是要宠粉,你的心头书我买单
  • #APPINVENTOR学习记录
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #在 README.md 中生成项目目录结构
  • (3) cmake编译多个cpp文件
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (Oracle)SQL优化技巧(一):分页查询
  • (六)DockerCompose安装与配置
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (转)使用VMware vSphere标准交换机设置网络连接
  • (转)淘淘商城系列——使用Spring来管理Redis单机版和集群版
  • .NET BackgroundWorker
  • .Net core 6.0 升8.0
  • .Net 中的反射(动态创建类型实例) - Part.4(转自http://www.tracefact.net/CLR-and-Framework/Reflection-Part4.aspx)...
  • /usr/local/nginx/logs/nginx.pid failed (2: No such file or directory)
  • @javax.ws.rs Webservice注解
  • [AutoSar NVM] 存储架构
  • [BUUCTF NewStarCTF 2023 公开赛道] week3 crypto/pwn
  • [C++] sqlite3_get_table 的使用
  • [C++]C++入门--引用
  • [C++]高精度 bign (重载运算符版本)