ArcGIS for Server常见问题集锦(一)



(1) 在A机器上访问B机器上的ArcGIS for Server Manager,切换站点中的任一Tab页面即导致Server账户登出,需重新登录。

问题分析与解决:

首先,重新登录往往意味着token出错。ArcGIS登录过程中token的创建,主要取决于用户名、密码、过期时间和Referer四个要素。其中用户名、密码和Referer都准确无误的情况下,那么导致问题的最大可能就是过期时间即Expiration。

manager中token的生成

其次,B机器上直接访问 ArcGIS for Server Manager不会出现这一现象。

第三,清除浏览器的缓存无效。

最后,检查A机器和B机器的操作系统时间,两者不一致。将A机器和B机器的系统时间修改一致后,问题解决


(2) 站点存在的情况下,访问ArcGIS for Server Manager,依然跳转到创建站点的页面。

问题分析与解决:

访问ArcGIS Server Manager时,系统会首先读取【ArcGIS for Server安装目录】\framework\etc下的config-store-connections.xml。而后根据这一文件的信息,找到对应的configure-store目录,进而获取其他信息。

针对这一问题,经排查,config-store-connections.xml文件由于未知原因缺失,因此,直接增加这一文件即可。config-store-connections.xml文件的具体内容如下:

configure-store-connections.xml默认设置

注:connectionString项的值和实际配置的configure-store路径相一致。

备注:问题的发现和解决基于ArcGIS for Server 10.3


(3) ArcGIS for Server系统服务无法启动,报JSONObject异常。

服务器断电后再次开机,ArcGIS for Server系统服务无法启动。手动启动服务后,服务状态随即自动变为Stop状态。

日志文件service_error.log中的错误信息如下:

java.lang.RuntimeException: com.esri.arcgis.discovery.json.JSONException: A JSONObject text must begin with '{' at character 1 of                                                      
 at com.esri.arcgis.discovery.logging.impl.LogService.init(LogService.java:325)
 at com.esri.arcgis.discovery.logging.impl.LogService.<init>(LogService.java:96)
 at com.esri.arcgis.discovery.nodeagent.impl.NodeAgent.registerLogService(NodeAgent.java:555)
 at com.esri.arcgis.discovery.nodeagent.impl.NodeAgent.start(NodeAgent.java:257)
 at com.esri.arcgis.discovery.nodeagent.impl.Main.start(Main.java:52)
Caused by: com.esri.arcgis.discovery.json.JSONException: A JSONObject text must begin with '{' at character 1 of                                                                                   
 at com.esri.arcgis.discovery.json.JSONTokener.syntaxError(JSONTokener.java:450)
 at com.esri.arcgis.discovery.json.JSONObject.<init>(JSONObject.java:178)
 at com.esri.arcgis.discovery.json.JSONObject.<init>(JSONObject.java:276)
 at com.esri.arcgis.discovery.logging.LogConfig.fromJSONString(LogConfig.java:186)
 at com.esri.arcgis.discovery.logging.impl.LogService.init(LogService.java:284)
 ... 4 more
com.esri.arcgis.discovery.nodeagent.NodeAgentException: java.lang.RuntimeException: com.esri.arcgis.discovery.json.JSONException: A JSONObject text must begin with '{' at character 1 of                                                                                                                        
 at com.esri.arcgis.discovery.nodeagent.impl.NodeAgent.start(NodeAgent.java:268)
 at com.esri.arcgis.discovery.nodeagent.impl.Main.start(Main.java:52)
Caused by: java.lang.RuntimeException: com.esri.arcgis.discovery.json.JSONException: A JSONObject text must begin with '{' at character 1 of                                      
 at com.esri.arcgis.discovery.logging.impl.LogService.init(LogService.java:325)
 at com.esri.arcgis.discovery.logging.impl.LogService.<init>(LogService.java:96)
 at com.esri.arcgis.discovery.nodeagent.impl.NodeAgent.registerLogService(NodeAgent.java:555)
 at com.esri.arcgis.discovery.nodeagent.impl.NodeAgent.start(NodeAgent.java:257)
 ... 1 more
Caused by: com.esri.arcgis.discovery.json.JSONException: A JSONObject text must begin with '{' at character 1 of                                                                                   
 at com.esri.arcgis.discovery.json.JSONTokener.syntaxError(JSONTokener.java:450)
 at com.esri.arcgis.discovery.json.JSONObject.<init>(JSONObject.java:178)
 at com.esri.arcgis.discovery.json.JSONObject.<init>(JSONObject.java:276)
 at com.esri.arcgis.discovery.logging.LogConfig.fromJSONString(LogConfig.java:186)
 at com.esri.arcgis.discovery.logging.impl.LogService.init(LogService.java:284)
 ... 4 more

日志文件service.log中如下信息:

Mon Nov 09 17:24:42 PKT 2015:Start NodeAgent.start().
Mon Nov 09 17:24:42 PKT 2015:Loading all observers.
Mon Nov 09 17:24:43 PKT 2015:Invoking beforeStart() for all observers.
WARNING: Could not connect to Log service. Writing log message to console.
<Msg time="2015-11-09T17:24:43,296" type="DEBUG" code="9999" source="Admin" process="4024" thread="1" methodName="" machine="" user="" elapsed="">Loading all observers.</Msg>
Mon Nov 09 17:24:57 PKT 2015:Starting RMI connector for NodeAgent.
Mon Nov 09 17:24:58 PKT 2015:Registering NodeAgent as JMX bean.
Mon Nov 09 17:24:58 PKT 2015:Registering and starting log service.

问题分析与解决:

根据上述log信息中提到(1)json对象以及(2)service.log的Registering and starting log service,可判断这一错误的出现是由某个与log有关的json文件导致的。

其次,日志中提到A JSONObject text must begin with '{' at character 1 of,说明在json文件中可能由于字符编码或其他原因导致读取json文件读取错误

基于上述判断以及进一步的分析,问题可定位至【ArcGIS Server】安装目录\framework\etc下的arcgis-logsettings.json文件。通过向这一文件开头输入其他非{字符,从而可浮现类似情况,即ArcGIS Server 系统服务启动后自动关闭。 

因此,修改arcgis-logsettings.json文件,确保其符合正确的格式。具体格式如图所示。

arcgis-logsettings.json文件默认设置

备注:问题的发现和解决基于ArcGIS for Server 10.1


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值