本文主要是介绍SOE使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.使用Arcgis 的模板例子选择新建-->ESRI模板-->ArcObjects Sample
选择simplerestsoe,然后finish完成例子的创建.或者直接到E:\Program Files (x86)\ArcGIS\DeveloperKit10.4\java\samples\arcobjects\serverobjectextensions\simplerestsoe
路径找到例子代码。这个例子是只有rest服务的soe扩展。
2.默认例子在lib目录已经有了JavaSimpleRESTSOE.soe文件.该文件可以用快压打开查看里面的内容,主要是一个xml描述文件和对应的SimpleRESTSOE.jar文件.
我们为了调试,需要自己重新生成soe文件,用自带的调式不了. 工程右键选择ArcGIS,然后选择SOE/SOI导出,只要勾选SRC下面的文件就可以了。然后finish即可。
3.在arcgis manager使用,在站点-->扩展-->添加扩展,选择我们的soe文件就可以。然后发布一个服务,勾选我们的扩展服务即可。
4.调用我们扩展服务的rest接口,只要选择勾选扩展服务的test服务-->功能-->Java Simple REST SOE 点击就可以看到rest服务url,点击就可以进行测试。
5.调试SOE,在arcgis manager进行调试配置。
如果要调试soe的init方法,可以勾选设置暂停服务启动,设置延迟启动的时间。这里不需要只是配置端口起始范围,配置后重新启动test的服务。
根据文档在arcgis server manager的log日志可以看到待远程连接调试的端口号。实际我并未找到过滤设置精细都没有,只有lience过期的一些警告。
这里我的eclipse和arcgis server都是一台机器,不管直接查询端口哪个在监听(9000--9005).
可以看到9001端口启动了。
然后我们在eclipse的工程进行remote application的配置,右键工程debug config,注意下面host因为是本机所以是localhost,如果是其他机器设置对应ip,端口选择9001
然后debug就可以了。
再次查9001端口,可以看到sid的eclipse程序正在用55082端口连接9001端口。
如果要杀进程可以用taskkill /PID 11032 ,如果要强制杀进程可以看帮助(taskkill /?)使用/F参数。
设置SOE代码,在arcgis server manager中点击之前的rest接口,调用对应的方法就可以进入断点了。
今天早上重启服务之后,断点不起作用。查看发现端口变了,原来9001端口找不到,但是9002、9003、9004都是soc进程在监听。修改eclipse的端口到9003才进入断点。
这篇关于SOE使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!