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閱讀 227,367評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,001評論 3 413
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 175,213評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,535評論 1 308
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,317評論 6 405
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,868評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,963評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,090評論 0 285
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,599評論 1 331
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,549評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,712評論 1 367
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,233評論 5 356
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,961評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,353評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,607評論 1 281
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,321評論 3 389
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,686評論 2 370

推薦閱讀更多精彩內容