写在前面:
前一段时间测试了普通 java 工程调用 ArcObject 10.5(下文简称AO)的功能,主要想在程序调用自定义arctoolbox模型,完成一些功能,在将该功能转换成web工程时,出现一些问题,现将解决方式记录下来,以备将来查阅。
1、开发环境:
ArcGIS 10.5,myeclipse 2014, jdk 1.8 32位,tomcat 8.5 32位,spring、spring mvc 4.3等
环境安装与配置,在些不在赘述。
有关 AO 开发的知识,也不在赘述。
2、问题说明
在没有解决该问题前,网页请求调用 AO 功能,会出现如下图所示异常。
造成该异常的原因,是由于程序中涉及到 AO 的代码找不到 arcgis 环境。
3、解决方式
在这一部分分为 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;"
4、结尾
按照上文所术方式,配置完 ide 和 tomcat 的 arcgis 环境后,一般情况下,只要你开发的 AO 程序没有问题,在将其改为 web 工程后台后,也不会有什么问题,祝亲们测试成功。
5、注意
java web 后台调用自定义 toolbox 功能,同一时刻只能运行一个 toolbox 处理,即 ao 代码,只能被一个线程调用,否则会出错,切记……