寫在前面:java
前一段時間測試了普通 java 工程調用 ArcObject 10.5(下文簡稱AO)的功能,主要想在程序調用自定義arctoolbox模型,完成一些功能,在將該功能轉換成web工程時,出現一些問題,現將解決方式記錄下來,以備未來查閱。web
一、開發環境:spring
ArcGIS 10.5,myeclipse 2014, jdk 1.8 32位,tomcat 8.5 32位,spring、spring mvc 4.3等windows
環境安裝與配置,在些不在贅述。tomcat
有關 AO 開發的知識,也不在贅述。mvc
二、問題說明eclipse
在沒有解決該問題前,網頁請求調用 AO 功能,會出現以下圖所示異常。ide
形成該異常的緣由,是因爲程序中涉及到 AO 的代碼找不到 arcgis 環境。測試
三、解決方式spa
在這一部分分爲 2 種狀況, 一種是在代碼開發時, IDE 環境中的 tomcat 配置,一種是將開發好的程序部署到 tomcat 中運行時的配置。
在本文中假設 arcgis desktop 安裝路徑爲:C:\Program Files (x86)\ArcGIS
先說第一種狀況,在 IDE 中配置 arcobject 環境:
選擇myeclipse菜單 windows -> preferences,選擇左側 servers -> tomcat,配置相應 tomcat 的paths環境,具體以下圖:
第二種狀況,配置 tomcat 運行環境:
按照 tomcat 的 java 環境配置說明,新建 setenv.bat 腳本文件,放在 tomcat bin 目錄下,並在文件中配置上圖中的路徑,具體爲:
set JAVA_OPTS="-Djava.library.path=C:/Program Files (x86)/ArcGIS/Desktop10.5/java/lib;C:/Program Files (x86)/ArcGIS/Desktop10.5/bin;"
四、結尾
按照上文所術方式,配置完 ide 和 tomcat 的 arcgis 環境後,通常狀況下,只要你開發的 AO 程序沒有問題,在將其改成 web 工程後臺後,也不會有什麼問題,祝親們測試成功。
五、注意
java web 後臺調用自定義 toolbox 功能,同一時刻只能運行一個 toolbox 處理,即 ao 代碼,只能被一個線程調用,不然會出錯,切記……