OneMap 安装部署

说句题外话,前段时期生了大病,险些就与世长辞,修养了3个多月终于基本恢复。这里希望各位程序猿工作之余还是要保存身体,活着才能继续革命不是。
  言归正传,近来有几个项目是要做专题图相关的项目。为提高效率,公司考虑使用 OneMap 作为基础框架进行快速开发。OneMap 是捷泰天域(Esri 在天朝的战略合作伙伴)的产品之一,是基于服务器 GIS 的软件产品,面向各行业提供多源异构空间信息服务资源整合、管理、安全监控与运维保障一体化的专业解决方案。OneMap产品包含平台 管理系统、资源服务中心、地图应用模板等不同的产品组件,还包括可选的公交换乘扩展模块(产品官网上照搬的,其实我表示一脸懵逼,哈哈哈)。
  经过几次安装部署发现其中还遇到了不少坑,捷泰天域的官方安装部署手册中很多都写的太笼统。里面的原因有我对 GIS 开发其实也是不熟悉(以前更多就是用了高德百度地图 API),还有就是 GIS 这块的东西在国内资源还是比较难查,鉴于此情,写下学习过程中遇到的问题,以备以后查看。

1. 安装环境准备

这里我使用了2个虚拟机来分别存放数据和部署一下应用,是为了通过虚拟机的快照功能,快速恢复某一个的状态,避免玩崩了重装软件等麻烦事。
  我的系统环境和安装的必要程序如下:

  • 数据服务器(虚拟机,网络使用桥接方式)
    系统:Windows Server 2012 R2 64位;
    其它:Oralce11gR2 数据库。
  • 应用服务器(虚拟机,网络使用桥接方式)
    系统:Windows Server 2012 R2 64位;
    其它:ArcGIS Server 10.5,Oralce11g 客户端 64位,准备工作完成后 OneMap 将安装到该主机。
  • 本机
    系统:Windows 10 专业版 64位;
    其它:ArcGIS Desktop 10.5,Oracle11g 客户端 32位。

注意事项:

  • 本文所用的截图为我这几次在不同环境下安装 OneMap 时为截图,图片内的部分版本号和日期并不一定对应,但并不影响安装的步骤和流程;
  • 所有安装 ArcGIS 相关产品的主机都要预先安装 .NET Framework 3.5;
  • 所有主机的机器名最好都为字母和数字组合,如果不是则最好在安装前更改机器名,不要带 "-” 和 "_" ,以免在安装部署 ActiveMQ(OneMap 需用到,MQ 在机器名为上述符号时有时启动会报异常)和 ArcGIS(不能使用 "_") 时发生异常;
  • 由于 ArcGIS Server 是 64位的程序,所以 Oracle 客户端也必须安装 64位的并配置好环境变量,而 Desktop 是 32位的程序,所以 Oracle 客户端需要安装 32位。如果 Server 和 Desktop 安装在一个主机环境下,则 32位和64位的 Oracle 客户端都需要安装(详细 Arcgis 安装可以查阅 Esri 官方网站的安装说明手册)。
  • Oracle 数据库的字符集要设置为 ZHS16GBK,为避免意外,最好实例名使用默认的 orcl;
  • 需要修改 Oralce 的监听器中的地址为机器名,否则 ArcGIS 和数据库进行连接建立地理信息基础数据库时会出错,如下图所示:


    1.png

解决方案:

  • 打开 Oracle 的 Net Manager 程序
图像 3.png
  • 如下图所示,将监听中的主机名改为当前主机的机器名(默认是 localhost)
图像 4.png
  • 查看 ORACLE_HOME/NETWORK/ADMIN/listener.ora 里的监听名称是否已改为当前主机机器名
图像 5.png
  • 修改 tnsnames.ora 里的主机地址为当前主机的机器名,并将修改好的 tnsnames.ora 文件复制到所有客户端下的相同位置(如客户端目录下 NETWORK/ADMIN 文件夹不存在则创建),然后重启 Oracle 服务。
图像 6.png

2. 注册 SDE 服务

2.1 在 Oracle 数据库中创建 sde 账户

此账户主要用于 ArcGIS 连接访问 Oracle 数据库。

  • 打开 ArcGIS Desktop 中的 ArcMap 程序,在右侧 Catalog 工具栏窗口中按照 Toolboxes\System Toolboxes\Data Management Tools.tbx\Geodatabase Administration\ 的目录找到并打开 Create Enterprise Geodatabase,如下图所示:
图像 7-1.png

在 Create Enterprise Geodatabase 窗口中填写数据库实例、用户密码等信息,点击 OK,如下图所示:

图像 8.png

创建 sde 用户成功后,会显示如下信息:

图像 10.png

登录 Oracle11g 控制台可以看到通过 ArcCatalog 工具创建的 sde 表空间和用户

图像 11.png
图像 12.png

2.2 在 ArcGIS Server 中注册 Oracle 数据库

在注册之前,如果 ArcGIS Server 尚为建立站点的话,需先行建立一个站点。建立站点本文不做描述,具体步骤可以查阅 Esri 的官方说明文档。
  注册数据库可以通过两种方式,一种通过 ArcMap 来注册,一种是通过访问 ArcGIS Server 的管理后台( http://主机名:6080/arcgis/manager )来注册,这里我的是通过 ArcMap 的方式来完成此步骤。具体流程为:

  • 在 Catalog 工具栏窗口中 Database Connections 项中找到并打开 Add Database Connection,使用刚才建立的 sde 用户来建立与数据库的连接,成功后会生成一个 .sde 文件,如下图所示:
Paste_Image.png
图像 17.png
Paste_Image.png
  • 右键生成的 .sde 文件,点击 properties,可以找到 sde 文件的物理位置,以备之后使用
图像 21.png
图像 22.png
  • 在 Catalog 工具栏窗口中 GIS Servers 项中找到并打开 Add ArcGIS Server,建立与 Server 的连接,如下图所示:
图像 13.png
  • 选择建立一个管理端的 GIS 服务连接
图像 16.png
  • 填写 Server 的地址和站点管理员和密码
图像 27.png
  • 连接成功后可以在 GIS Servers 项下看到连接的项,如图所示:
图像 15.png
  • 在建立的 Server 连接上右键点击 Server Properties... 项,选择注册托管数据库,具体操作如图所示:
图像 23-1.png
图像 24.png
  • 填写注册数据库的名称,点击 Import 按钮导入之前生成好的 .sde 文件
图像 25.png
  • 注册成功后,如下图所示:
图像 26.png

注意事项

  • 如果未安装 .NET Framework 3.5 此步骤可能会报如下图异常(此图为我之前用访问 Server 管理平台注册数据库时遇到此问题时的截图)
2 - 副本.png
  • 由于 OneMap 还未安装,故文件夹等之后再注册。

3. 发布要素服务

此服务主要是用于 OneMap 的扩展权限功能。

  • 在之前 Database Connection 项下建立的 sde 连接上右键 New > Feature Class 打开要素服务窗口,并按照官方说明手册要求填写名称、坐标系等信息,具体参数设置请参照官方手册,本文就不再进行说明。大体流程如图所示:
图像 29.png
图像 30.png
图像 31.png
图像 32.png
  • 完成后在左侧窗口中就可以看到添加好的数据,根据手册做相应配置后保存
图像 33.png
图像 34.png

而后选择左侧窗口中的数据,点击菜单栏 File > Share As > Service... 开始发布服务


图像 36.png
图像 37.png
  • 选择 Server 服务和填写图层服务名称
图像 38.png
图像 39.png
图像 40.png
  • 参数设置完成后,点击右上角的 Publish 进行服务发布
图像 42.png
图像 43.png
  • 发布成功后,可以登录 ArcGIS Server 的管理平台,可以看到刚刚发布的服务
图像 44.png
图像 45.png
  • 至此 OneMap 安装前的准备工作就全部完成。

4. 安装和配置 OneMap

详细的安装流程请参照 OneMap 官方安装部署手册进行,本文只着重说明下其中的关键步骤。

4.1. 向数据库中导入 OneMap 的用户、库表结构和数据

  • 运行安装程序,点击创建。而后填写数据库的连接信息,开始导入数据
图像 10.png
图像 13.png
图像 15.png

4.2. 安装 OneMap 主程序

  • 运行安装程序,点击安装开始进行安装,尽量不要改动其安装路径,避免将来遇到未知的错误
图像 16.png
  • 安装完成后,会弹出参数配置窗口,如下图所示:
图像 17.png
  • 这里需要注意的是,上图中蓝框的部分为数据库的配置,主机地址需要填写 Oracle 数据库所在主机的机器名或 IP。绿框的部分为 ArcGIS Server 的配置,主机地址需要填写 Server 所在主机的机器名或 IP。金黄色框的部分为 OneMap 的配置,主机地址需要填写 OneMap 所在主机的机器名或 IP。
  • 之后在安装程序主界面点击授权,导入授权文件即可激活 OneMap。
  • 安装 OneMap 主程序完成后,还需要在 ArcGIS Server 中注册 OneMap 的共享文件夹。首先先要设置 OneMap 所在主机的 C:\OneMap\temp\upload 文件夹为共享文件夹,并且 ArcGIS 的账户,默认为 arcgis 拥有权限,这里为了方便,直接向所有用户开放了权限。如图所示:
图像 18.png
图像 19.png
图像 22.png
图像 23.png

4.2 根据 OneMap 的部署要求配置 ArcGIS Server

  • 将 C:\OneMap\extension\ArcGIS 文件夹下的 11个 jar 包服务到 ArcGIS Server 安装目录下的
    framework\lib\server 文件夹下。
Paste_Image.png
  • 编辑 C:\OneMap\extension\ArcGIS 目录下的 proxool.xml 修改数据库主机地址为当前数据库所在主机的地址。并将修改好的 proxool.xml 文件复制到 ArcGIS Server 的工作文件夹中(默认为 C:\arcgisserver),本文是将文件复制到 C:\arcgisserver\oracle 文件夹下,并设置 oracle 文件夹为共享,以确保 proxool.xml 为共享文件,然后重启 Server 的服务 。
图像 25.png
图像 26.png
图像 27.png
图像 28.png
  • 登录 ArcGIS Server 后台管理系统(主机名:6080/arcgis/admin),登录后,按照 security > config > Update Identity Store 的路径打开更新身份存储窗口。
图像 1.png
图像 3.png
  • 将下图中的配置数据,填写到 User Store Configuration 和 Role Store Configuration 项中,红框的路径要设置为之前设置的共享文件位置。
图像 5.png
  • 填写完毕后,点击更新,成功则显示如下信息:
图像 4.png
  • 按照 security > users > getUsers 的路径打开窗口。然后和数据库中的对应表中的用户名是否一致。
图像 11.png
图像 10.png

4.3 为 Server 配置 OneMap 本地发布的 js 库

  • 在 Server 根路径下找到 framework\runtime\tomcat\webapps\arcgis#rest\WEB-INF\classes\resources\rest-config.properties 配置文件并打开。将其中的 js 资源路径替换为 OneMap 发布的资源路径。
图像 16.png
  • 注:如果 classes 文件夹下是空的,可以用压缩工具打开 arcgis#rest\WEB-INF\lib\rest-10.4.1.5686.jar 包。提取 jar 里的 rest-config.properties 文件,修改保存后放置到文档要求的位置。 (不过这里有个疑问,官方手册匹配 ArcGIS 版本是10.1/10.2/10.3,我发现 10.4.1 版本的 rest-10.4.1.5686.jar 中的配置文件是放在根路径下,而并非是在 resources 包下,发布后应该也是在 classes 而不是 处理 classes/resources 下,具体等有时间了再进行测试)。
Paste_Image.png
  • 登录 ArcGIS Server 管理后台(Server 主机名:6080/arcgis/admin),按照 system > handlers > rest > servicesdirectory 的路径打开窗口。修改 js 相关地址为 OneMap 发布的资源地址并保存。
图像 15.png
  • 登录 ArcGIS Server Manager,在安全性功能下编辑令牌信息,默认:geoshare
Paste_Image.png

4.4 启动 OneMap 服务

  • 使用 OneMap 启动服务快捷方式启动所有服务。
Paste_Image.png
  • 如果出现 “拒绝访问” 的错误,可以使用管理员权限来执行此脚本程序。
Paste_Image.png
Paste_Image.png
Paste_Image.png
  • 打开服务管理器,确认 OneMap 的 4 个服务是否已全部开启。
Paste_Image.png

5. 访问和初步配置 OneMap

5.1. 各系统访问地址

主要包含 4 个系统:

  • OneMap 资源服务中心(门户系统),URL:http://主机名:8080/Portal;
  • OneMap 捷泰天域平台管理系统(运维系统),URL:http://主机名:8080/GeoShareManager;
  • OneMap 服务目录(服务系统),URL:http://主机名:8080/OneMapServer/rest/services;
  • OneMap 用户信息安全加密服务系统(Token系统),URL:http://主机名:8080/RemoteTokenServer;

5.2. 配置服务引擎

  • 登录运维系统,按照“系统配置” > “服务引擎配置” 进入引擎配置页面。按照自己的安装部署环境和需要配置 Server 引擎、OneMap 服务引擎、代理和令牌引擎。
Paste_Image.png
Paste_Image.png
Paste_Image.png
Paste_Image.png

5.3. 平台监控配置

  • 打开“系统配置” > “平台监控配置”,有集群(选组织)、单机(选服务器)两种方式进行配置,这里用服务器的方式进行配置。
Paste_Image.png
Paste_Image.png

5.4. 日志系统配置

  • 打开“系统配置” > “日志收割”,修改服务器的 IP 为部署 OneMap 的主机 IP,并保存。
Paste_Image.png
  • 点击远端配置按钮(下图红圈处),修改“访问账号”的绑定 IP 为部署 OneMap 的主机 IP。
Paste_Image.png
Paste_Image.png

6. 服务测试

  • 至此 OneMap 全部安装和部署工作已全部完成。现在就就发布一组测试数据看看是否可以成功。

  • 登录运维系统,打开“服务管理” > “本地服务发布”。这里我发布了 OneMap 在安装包中提供的示例中国行政区划图的 .sd 文件。

Paste_Image.png
Paste_Image.png
  • 发布成功后,在“服务平台管理”中可以看到刚才发布的图层。
Paste_Image.png
  • 下图为把图层加载到 ArcGIS Online map viewer 中显示的效果。
Paste_Image.png
  • 注:OneMap 安装时会把系统的环境变量中 JDK 等路径设置为他自带的 JDK 1.6 的路径。从而影响系统里其他需要 1.7 和以上版本 JDK 的程序。有需要的或者有强迫症的,可以把 “C:\OneMap\Tomcat\bin\setclasspath.bat”、“C:\OneMap\services\activemq5.4.1\bin\activemq.bat”、“C:\OneMap\services\activemq5.4.1\bin\activemq-admin.bat” 中加上指定 JDK 的语句,然后把环境变量里的设置改回原来的即可。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,968评论 6 482
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,601评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 153,220评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,416评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,425评论 5 374
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,144评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,432评论 3 401
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,088评论 0 261
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,586评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,028评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,137评论 1 334
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,783评论 4 324
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,343评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,333评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,559评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,595评论 2 355
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,901评论 2 345

推荐阅读更多精彩内容