基于 Maven 实现 ArcGIS for Server SOE 的开发
分享
作者:张赛 发布时间: 2017-3-1
基于Maven实现ArcGIS for Server SOE的开发这篇文档是基于用户的特定需求进行测试后整理的,着重于开发环境的搭建以及基于soepackager实现soe的导出。不过,我个人更加推荐用Eclipse作为开发平台,以方便使用ArcGIS提供的Plugin for Eclipse基于默认模板完成从SOE开发到导出的全过程。
1 准备
1.1 安装和配置JDK
1.1.1 安装 JDK
下载和安装jdk-8u121-windows-x64.exe。
1.1.2 配置 JDK
在Windows系统环境变量下新建 JAVA_HOME变量,设置为java安装路径如C:\java\jdk; 新建CLASSPATH变量,设置为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 编辑Path变量,添加%JAVA_HOME%\bin。
1.2 安装和配置Maven
1.2.1 安装Maven
下载apache-maven-3.3.9-bin.zip并解压。
1.2.2 配置Maven
在windows系统环境变量下新建MAVEN_HOME变量,设置为2.1中的Maven路径,如E:\apache-maven-3.3.9; 编辑Path变量,添加MAVEN_HOME\bin。
1.2.3 验证Maven
打开windows命令窗口,运行mvn -v,如果出现如下信息,则说明Maven安装成功。
1.2.4 修改Maven本地存储库位置
取消注释%MAVEN_HOME%\conf\settings.xml文件中的localRepository这一小节,并修改参数值。
1.2.5 运行mvn help:system
运行mvn help:system命令,一方面打印所有Java系统变量和环境变量,另一方面从远程资源库中的jar包下载至2.4中设置的本地存储库中。
出现如上信息,说明运行成功。
2 SOE开发
2.1 安装ArcGIS Objects包到Maven本地存储库
将ArcGIS Objects核心包即arcobjects.jar安装到Maven本地存储库,方便后面的开发过程引用。
出现如下信息,说明安装成功。
2.2 建立SOE项目
看到如下信息,说明Java项目构建成功。
2.2 编辑SOE项目
参照Sample中的Simple Rest SOE编辑App.java文件,构建您的第一个SOE应用。
2.3 编译SOE项目
1 编辑pom.xml文件,添加项目所依赖的第三库jar包。
2 进入pom.xml所在的文件夹编译项目。
出现如下信息,说明项目编译成功。
2.4 打包SOE项目
出现如下信息,说明项目打包成功。
3 调用soepackager打包SOE项目
3.1 修改 soepackager.bat
根据测试,soepackager.bat文件中的JAVA_HOME、soe_jar_file、output_folder和jdkpath三个变量存在问题,将导致soepackager运行失败。 请参照如下设置进行修改:
1)set JAVA_HOME=%JAVA_HOME:?% 改为 set JAVA_HOME=%JAVA_HOME%
2)set soe_jar_file=%soe_jar_file:?% 改为 set soe_jar_file=%soe_jar_file%
3)set output_folder=%output_folder:?% 改为 set output_folder=%output_folder%
4)set jdkpath=%jdkpath:?% 改为 jdkpath=%jdkpath%
3.2 运行soepackager.bat
出现如下信息且E:\mvn-reprojects\simplerestsoe路径下出现simplerestsoe-1.0.soe文件,说明SOE项目打包成功。
4 部署SOE
1 访问ArcGIS for Server Manager,导航至Site -> Extensions,点击Add Extension按钮,浏览至simplerestsoe-1.0.soe并添加。
2 对SampleWorldCities服务启用这一SOE功能,保存并重启。
3 访问SampleWorldCitie的REST服务页面,点击页面底端Supported Extensions:App。
4 点击 Supported Operations:getLayerCountByType,输入type为feature,获得结果count:3,说明SOE部署且运行成功。
文章来源:
https://github.com/serverteamCN/TechnicalArticles/blob/master/SDKs/%E5%9F%BA%E4%BA%8E%20Maven%20%E5%AE%9E%E7%8E%B0%20ArcGIS%20for%20Server%20SOE%20%E7%9A%84%E5%BC%80%E5%8F%91.md
基于Maven实现ArcGIS for Server SOE的开发这篇文档是基于用户的特定需求进行测试后整理的,着重于开发环境的搭建以及基于soepackager实现soe的导出。不过,我个人更加推荐用Eclipse作为开发平台,以方便使用ArcGIS提供的Plugin for Eclipse基于默认模板完成从SOE开发到导出的全过程。
1 准备
1.1 安装和配置JDK
1.1.1 安装 JDK
下载和安装jdk-8u121-windows-x64.exe。
1.1.2 配置 JDK
在Windows系统环境变量下新建 JAVA_HOME变量,设置为java安装路径如C:\java\jdk; 新建CLASSPATH变量,设置为.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 编辑Path变量,添加%JAVA_HOME%\bin。
注意: 注意JDK的版本和ArcGIS内置JRE版本的一致性,避免利用soepackager打包时报 Unsupported major.minor version 52.0的错误。
1.2 安装和配置Maven
1.2.1 安装Maven
下载apache-maven-3.3.9-bin.zip并解压。
1.2.2 配置Maven
在windows系统环境变量下新建MAVEN_HOME变量,设置为2.1中的Maven路径,如E:\apache-maven-3.3.9; 编辑Path变量,添加MAVEN_HOME\bin。
1.2.3 验证Maven
打开windows命令窗口,运行mvn -v,如果出现如下信息,则说明Maven安装成功。
C:\Users\Administrator>mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-11T00:41:47+08:00)
Maven home: E:\development\apache-maven-3.3.9
Java version: 1.8.0_121, vendor: Oracle Corporation
Java home: C:\java\jdk\jre
Default locale: zh_CN, platform encoding: GBK
OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"
1.2.4 修改Maven本地存储库位置
取消注释%MAVEN_HOME%\conf\settings.xml文件中的localRepository这一小节,并修改参数值。
<!-- localRepository
| The path to the local repository maven will use to store artifacts.
|
| Default: ${user.home}/.m2/repository
-->
<localRepository>E:\local-repo-for-maven</localRepository>
1.2.5 运行mvn help:system
运行mvn help:system命令,一方面打印所有Java系统变量和环境变量,另一方面从远程资源库中的jar包下载至2.4中设置的本地存储库中。
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:43 min
[INFO] Finished at: 2017-02-28T18:34:46+08:00
[INFO] Final Memory: 12M/150M
[INFO] ------------------------------------------------------------------------
出现如上信息,说明运行成功。
2 SOE开发
2.1 安装ArcGIS Objects包到Maven本地存储库
将ArcGIS Objects核心包即arcobjects.jar安装到Maven本地存储库,方便后面的开发过程引用。
E:\>mvn install:install-file -DgroupId=com.esri.sdk.ao -DartifactId=arcobjects -Dversion=10.5 -Dpackaging=jar -Dfile=E:\arcobjects.jar
出现如下信息,说明安装成功。
[INFO] Installing E:\arcobjects.jar to E:\local-repo-for-maven\com\esri\sdk\ao\arcobjects\10.5\arcobjects-10.5.jar
[INFO] Installing C:\Users\ADMINI~1\AppData\Local\Temp\mvninstall7772689279552139840.pom to E:\local-repo-for-maven\com\esri\sdk\ao\arcobjects\10.5\arcobjects-10.5.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 22.945 s
[INFO] Finished at: 2017-02-28T18:52:59+08:00
[INFO] Final Memory: 9M/149M
[INFO] ------------------------------------------------------------------------
2.2 建立SOE项目
E:\mvn-reprojects>mvn archetype:generate -DgroupId=com.esrichina.simplerestsoe -DartifactId=simplerestsoe -Dversion=1.0 -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
看到如下信息,说明Java项目构建成功。
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:07 min
[INFO] Finished at: 2017-02-28T19:19:34+08:00
[INFO] Final Memory: 14M/216M
[INFO] ------------------------------------------------------------------------
2.2 编辑SOE项目
参照Sample中的Simple Rest SOE编辑App.java文件,构建您的第一个SOE应用。
2.3 编译SOE项目
1 编辑pom.xml文件,添加项目所依赖的第三库jar包。
<dependency>
<groupId>com.esri.sdk.ao</groupId>
<artifactId>arcobjects</artifactId>
<version>10.5</version>
</dependency>
注意: 这里添加的groupId、arctifactId和version等参数要和步骤2.4中添加至本地存储库中的信息保持一致。
2 进入pom.xml所在的文件夹编译项目。
E:\mvn-reprojects\simplerestsoe>mvn compile
出现如下信息,说明项目编译成功。
[INFO] Compiling 1 source file to E:\mvn-reprojects\simplerestsoe\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 50.854 s
[INFO] Finished at: 2017-02-28T19:34:56+08:00
[INFO] Final Memory: 19M/243M
[INFO] ------------------------------------------------------------------------
2.4 打包SOE项目
E:\mvn-reprojects\simplerestsoe>mvn package
出现如下信息,说明项目打包成功。
[INFO] Building jar: E:\mvn-reprojects\simplerestsoe\target\simplerestsoe-1.0.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 35.121 s
[INFO] Finished at: 2017-02-28T19:39:50+08:00
[INFO] Final Memory: 20M/212M
[INFO] ------------------------------------------------------------------------
3 调用soepackager打包SOE项目
3.1 修改 soepackager.bat
根据测试,soepackager.bat文件中的JAVA_HOME、soe_jar_file、output_folder和jdkpath三个变量存在问题,将导致soepackager运行失败。 请参照如下设置进行修改:
1)set JAVA_HOME=%JAVA_HOME:?% 改为 set JAVA_HOME=%JAVA_HOME%
2)set soe_jar_file=%soe_jar_file:?% 改为 set soe_jar_file=%soe_jar_file%
3)set output_folder=%output_folder:?% 改为 set output_folder=%output_folder%
4)set jdkpath=%jdkpath:?% 改为 jdkpath=%jdkpath%
3.2 运行soepackager.bat
C:\Program Files (x86)\ArcGIS\DeveloperKit10.5\java\tools\soepackager>soepackager.bat -p E:\mvn-reprojects\simplerestsoe\target\simplerestsoe-1.0.jar -o E:\mvn-reprojects\simplerestsoe -j C:\java\jdk
出现如下信息且E:\mvn-reprojects\simplerestsoe路径下出现simplerestsoe-1.0.soe文件,说明SOE项目打包成功。
Found SOE with Class Name :com.esrichina.simplerestsoe.App
4 部署SOE
1 访问ArcGIS for Server Manager,导航至Site -> Extensions,点击Add Extension按钮,浏览至simplerestsoe-1.0.soe并添加。
2 对SampleWorldCities服务启用这一SOE功能,保存并重启。
3 访问SampleWorldCitie的REST服务页面,点击页面底端Supported Extensions:App。
4 点击 Supported Operations:getLayerCountByType,输入type为feature,获得结果count:3,说明SOE部署且运行成功。
文章来源:
https://github.com/serverteamCN/TechnicalArticles/blob/master/SDKs/%E5%9F%BA%E4%BA%8E%20Maven%20%E5%AE%9E%E7%8E%B0%20ArcGIS%20for%20Server%20SOE%20%E7%9A%84%E5%BC%80%E5%8F%91.md
发起人
推荐内容
- ArcGIS Pro 2.4向独立server发布服务步骤
- Linux上安装ArcGIS Enterprise超详细教程——以Redhat7.2上安装ArcGIS Enterprise 10.5为例
- ArcGIS for Server 10.x 许可授权手册
- Portal for ArcGIS 10.X许可授权手册 (Windows版)
- arcgis server 无法手动删除切片
- ArcGIS for Server内置JS Viewer的离线部署和配置
- Linux上安装ArcGIS for Server超详细教程——以Redhat6.5上安装ArcGIS for Server 10.3.1为例
- 如何创建Geometry Service?
- 地图服务优化策略
相关问题
- 如何优雅的使用ArcGIS知乎?
- 建设ArcGIS知乎平台的目和意义?
- gis开发群的管理不讲理,求围观。
- ArcGIS知乎社区改进意见征集
- 【抽奖结果已出】ArcGIS知乎社区活动 之 你不知道的地理空间革命【转发分享有奖】【附奖品寄送照片】
- 苹果系统下可以使用arcgis 吗?
- 请问ArcGIS适合在局域网内用javaweb做二次开发吗?
- arcgis版本兼容性
- 请问大神们,怎么用ArcGIS做城镇间经济联系强度的图?
- ArcGIS如何求栅格图像的“质心”
- 在Visual studio 2015 中使用 Arcgis API for JavaScript v3.16 如何实现代码智能提示?