ArcGis Server 服務啟動后自動停止的解決辦法


最近ArcGIS Server突然無法無法啟動,啟動后自動又停止了,網上找了很久,終於看到一位網友的解決辦法:查看原文,但是這位大神給的代碼有一些對於編程經驗不足的人來說很致命的缺陷:中文字符以及轉義字符導致程序直接運用是無效的。

定位錯誤

首先,我們需要知道具體是什么原因導致的錯誤,於是需要找到服務相關的日志位置,日志文件所在目錄(Server安裝目錄下,我的在C盤):

C:\Program Files\ArcGIS\Server\framework\etc\service\logs
其中可以看到service.log和service_error.log兩個文件,具體信息可以參考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.d(LogService.java:326)
at com.esri.arcgis.discovery.logging.impl.LogService.(LogService.java:94)
at com.esri.arcgis.discovery.util.JMXServerController.createLogService(JMXServerController.java:64)
at com.esri.arcgis.discovery.nodeagent.impl.NodeAgent.registerLogService(NodeAgent.java:694)
at com.esri.arcgis.discovery.nodeagent.impl.NodeAgent.start(NodeAgent.java:290)
at com.esri.arcgis.discovery.nodeagent.impl.Main.start(Main.java:51)
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:454)
at com.esri.arcgis.discovery.json.JSONObject.(JSONObject.java:178)
at com.esri.arcgis.discovery.json.JSONObject.(JSONObject.java:276)
at com.esri.arcgis.discovery.logging.LogConfig.fromJSONString(LogConfig.java:208)
at com.esri.arcgis.discovery.logging.impl.LogService.d(LogService.java:285)

可以看到起具體錯誤為:
ava.lang.RuntimeException: com.esri.arcgis.discovery.json.JSONException: A JSONObject text must begin with ‘{’ at character 1 of
對於此錯誤,可以定位到 C:\Program Files\ArcGIS\Server\framework\etc 路徑下(ArcGIS Server安裝目錄)的arcgis-logsettings.json文件,此時,文件用notepad打開為空,導致json解析錯誤,我們在該文件中添加如下內容即可解決:

{
  "logDir":"D:\\arcgisserver\\logs\\"
}

其中,logDir是ArcGIS Server站點的日志文件保存位置,記得一定是雙反斜杠,因為在程序中,反斜杠通常是用作特殊字符轉義的,還有,這里的雙引號必須是英文字符。

如此,再次重啟服務,就正常了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM