SuperMap iServer 扩展服务及扩展服务提供者范例
一、扩展服务实例
1.将iserver-extend1下的listener.java打成jar包
2.复制到D:\SuperMap-iServer\webapps\iserver\WEB-INF\lib
3.在web.xml文件中添加listener配置如下:
<listener>
<listener-class>extend.listener</listener-class>
</listener>
示例代码:
package extend;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import com.supermap.data.Workspace;
import com.supermap.data.WorkspaceConnectionInfo;
import com.supermap.data.WorkspaceType;
public class listener implements ServletContextListener {
private Workspace m_workspace;
// 定义的销毁函数
public void contextDestroyed(ServletContextEvent sce) {
// TODO Auto-generated method stub
System.out.println("this is last destroyeed");
}
// 定义的初始化函数,当tomcat启动时触发定义的保存oracle工作空间的方法
public void contextInitialized(ServletContextEvent sce) {
// TODO Auto-generated method stub
/*
* 当Servlet 容器启动或终止Web 应用时,会触发ServletContextEvent 事件, 获取tomcat的
* ServletContext 对象的生命周期,
*/
ServletContext sct = sce.getServletContext();
try {
m_workspace = new Workspace();
// 初始化工作空间连接信息类
WorkspaceConnectionInfo connectionInfo = new WorkspaceConnectionInfo();
// 定义打开的工作空间类型为oracle
connectionInfo.setType(WorkspaceType.ORACLE);
// 定义的连接oracle数据库信息
connectionInfo.setServer("ORCL");
connectionInfo.setName("x'x");
connectionInfo.setUser("x'x");
connectionInfo.setPassword("x'x");
boolean openResult = m_workspace.open(connectionInfo);
if (openResult) {
System.out.print("打开工作空间成功!");
// 保存工作空间
boolean saveResult =m_workspace.save();
if(saveResult){
System.out.print("保存工作空间成功!");
}
} else {
System.out.print("打开工作空间失败!");
}
// 释放资源
connectionInfo.dispose();
m_workspace.dispose();
} catch (Exception e) {
e.printStackTrace();
}
}
}
二、扩展服务提供者实例
package com.supermap.serviceprovider;
import com.supermap.data.Workspace;
import com.supermap.data.WorkspaceConnectionInfo;
import com.supermap.data.WorkspaceType;
import com.supermap.services.components.spi.ProviderContext;
import com.supermap.services.components.spi.ProviderContextAware;
//ProviderContextAware 用于获取服务提供者上下文,通过服务提供者上下文,可以获取该服务提供者对应的配置信息
public class SaveWorkspaceProvider implements ProviderContextAware, SaveWorkspace {
private Workspace m_workspace;
// setProviderContext设置在iserver启动过程中执行,
public void setProviderContext(ProviderContext context) {
ClearSetting clearSetting = (ClearSetting) context.getConfig(ClearSetting.class);
if (clearSetting == null) {
System.out.print("无法清除数据集配置类!");
return;
}
// 定义的获取到的工作空间路径
String workspacePath = (clearSetting).getWorkSpacePath();
try {
m_workspace = new Workspace();
// 初始化工作空间连接信息类
WorkspaceConnectionInfo connectionInfo = new WorkspaceConnectionInfo();
connectionInfo.setType(WorkspaceType.SXWU);
connectionInfo.setServer(workspacePath);
boolean openResult = m_workspace.open(connectionInfo);
if (openResult) {
System.out.print("打开工作空间成功!");
// 保存工作空间
boolean saveResult = m_workspace.save();
if (saveResult) {
System.out.print("保存工作空间成功!");
}
} else {
System.out.print("打开工作空间失败!");
}
// 释放资源
connectionInfo.dispose();
m_workspace.dispose();
} catch (Exception e) {
e.printStackTrace();
}
}
}
package com.supermap.serviceprovider;
public class ClearSetting {
//workspacePath 字段拼错了!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
private String workspacePath; //文件工作空间路径
public void setWorkspacePath(String workspacePath) {
this.workspacePath = workspacePath;
}
public String getWorkSpacePath() {
// TODO Auto-generated method stub
return workspacePath;
}
}
SuperMap iServer 扩展服务及扩展服务提供者范例的更多相关文章
- SuperMap iServer 扩展/JAVA API 系列博客整理
转载:http://blog.csdn.net/supermapsupport/article/details/70158940 SuperMap iServer为广大用户提供了整套 SDK,应用开发 ...
- SSH服务及其扩展(sshpass和expect)
SSH服务及其扩展(sshpass和expect) Linux SSH服务一共包含三个工具:ssh.scp.sftp [远程连接及执行命令] 语法:ssh -p端口 账号@IP 命令 参数说明:-o ...
- 属性 每秒10万吞吐 并发 架构 设计 58最核心的帖子中心服务IMC 类目服务 入口层是Java研发的,聚合层与检索层都是C语言研发的 电商系统里的SKU扩展服务
小结: 1. 海量异构数据的存储问题 如何将不同品类,异构的数据统一存储起来呢? (1)全品类通用属性统一存储: (2)单品类特有属性,品类类型与通用属性json来进行存储: 2. 入口层是Java研 ...
- 在 Windows Azure 网站中进行纵向扩展和横向扩展
编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Byron Tardif 撰写. 当您开始一个新的 Web 项目,或者刚刚开始开发一般的网站和应用程序时,您可能希望从小处着手. ...
- Memcache服务器端+Redis服务器端+PHP Memcache扩展+PHP Memcached扩展+PHP Redis扩展+MemAdmin Memcache管理工具+一些概念(更新中)
Memcache和Redis因为操作简单,是我们常用的服务器数据缓存系统,以下文字仅作备忘记录,部份转载至网络. 一.定义 1.Memcache Memcache是一个高性能的分布式的内存对象缓存系统 ...
- PHP7 学习笔记(一)Ubuntu 16.04 编译安装Nginx-1.10.3、 PHP7.0.9、Redis3.0 扩展、Phalcon3.1 扩展、Swoole1.9.8 扩展、ssh2扩展(全程编译安装)
==================== PHP 7.0 编译安装================== wget http://cn2.php.net/get/php-7.0.9.tar.bz2/fr ...
- SuperMap iServer 9D HBase使用
需提前将HBase进行部署,参考上篇部署文档 https://www.cnblogs.com/zhangyongli2011/p/9982143.html (转发请注明出处:http://www.cn ...
- iptables详解(7):iptables扩展之udp扩展与icmp扩展
前文中总结了iptables的tcp扩展模块,此处,我们来总结一下另外两个跟协议有关的常用的扩展模块,udp扩展与icmp扩展. udp扩展 我们先来说说udp扩展模块,这个扩展模块中能用的匹配条件比 ...
- 理解水平扩展和垂直扩展 (转载 http://yunjiechao-163-com.iteye.com/blog/2126981)
当一个开发人员提升计算机系统负荷时,通常会考虑两种方式垂直扩展和水平扩展.选用哪种策略主要依赖于要解决的问题 以及系统资源的限制.在这篇文章中我们将讲述这两种策略并讨论每种策越的优缺点.如果你已经 ...
随机推荐
- 虚拟机网络驱动(共享文件夹)不见了的解决方案-适用于win7~win10 and Windows Server 2008~Windows Server 2012R2
具体看图 手动打入下面选择部分的字符 \\vmware-host\Shared Folders 然后就可以了,这边有个红叉,重启后就没了 重启后
- 实战MEF(4):搜索范围
在前面的文章中,几乎每个示例我们都会接触到扩展类的搜索位置,我们也不妨想一下,既然是自动扩展,它肯定会有一个或者多人可供查找的位置,不然MEF框架怎么知道哪里有扩展组件呢? 就像我们用导航系统去查找某 ...
- win8下IE10的鼠标mouse事件响应错误BUG
具体症状就是有时候鼠标左键响应,有时候右键才能响应 问题的原因就是事件对象的detail没有复位 https://github.com/clientside/amplesdk/issues/187
- String,StringBuffer与StringBuilder的区别??
转自http://blog.csdn.net/rmn190/article/details/1492013 String 字符串常量 StringBuffer 字符串变量(线程安全) StringBu ...
- 【原创】开源Math.NET基础数学类库使用(02)矩阵向量计算
本博客所有文章分类的总目录:[总目录]本博客博文总目录-实时更新 开源Math.NET基础数学类库使用总目录:[目录]开源Math.NET基础数学类库使用总目录 前言 ...
- WebAPi添加常用扩展方法及思维发散
前言 在WebAPi中我们通常需要得到请求信息中的查询字符串或者请求头中数据再或者是Cookie中的数据,如果需要大量获取,此时我们应该想到封装一个扩展类来添加扩展方法,从而实现简便快捷的获取. We ...
- 解决ajax跨域请求 (总结)
ajax跨域请求,目前已用几种方法实现: 1)用原生js的xhr对象实现. var url="http://freegeoip.net/json/" ...
- CSS实现的手风琴特效
CSS样式: //图像个数 @imageN:5; //图像hover之前的总宽度 @w:800px; //图像hover之后的宽度 @imageL:640px; //图像hover之前的宽度 @ima ...
- Java 技能树
- SQL Server中smalldatetime的日期范围为何是[1900-01-01,2079-06-06]
本文目录列表: 1.SQL Server中的基准日期 2.smalldatetime的日期范围 3.smalldatetime的日期范围和无符号2字节整数的关系 4.总结语 5.参考清单列表 SQ ...