ArcGIS Manager Server Add Host页面报错 HTTP Status 500
问题描述
由于系统老旧,难免遇到一些诡异的 Bug,在维护使用旧版本的 ArcGIS 10.0,打开登录 ArcGIS Manager Server后,进入服务管理页面时提示"Add Host",进入 Host Machine 管理页面直接报错 HTTP Status 500,我的报错信息如下:HTTP Status 500 - javax.faces.component.UIViewRoot cannt be cast to com.sun.faces.application.StateManagerImpl$TreeNode。
解决问题
- 找到日志文件 \ArcGIS\Server10.0\java\manager\service\logs\manager_stderr2.txt
- 查看提示"HTTP Status 500"时间段的错误信息
- 定位到对应页面行数,修改问题
- 可能是ArcGIS证书过期导致提示"Add Host",哪怕我修复这个问题后,保存 Host 还是会提示证书过期,无法添加 Host,更改证书为有效后,ArcGIS 恢复正常
- 因为版本过低,导致页面提示信息很有限,只报错最后一段,压根没法对报错信息溯源,所以找到日志文件的报错信息这一步很重要
- 旧版本 ArcGIS 可以修改服务器/电脑系统日期让证书重新生效,需要重启服务器/电脑!
因为页面报错的信息实在有限,根本想不到他在哪儿报错,只能找到对应的报错文件,对应的问题行数去解决,大家遇到的问题可能不一样,提出这个思路可以少走很多弯路。
我这次报错的页面:
\ArcGIS\Server10.0\java\manager\service\managerserver\webapps\arcgismanager\gisServer\gisServerAdd.xhtml
报错代码:
Java
<td>
<h:inputText id="inputCapacitySOCTxt" value="#{esriAGSServerAdd.capacity}" styleClass="long" disabled="#{esriAGSServerAdd.capacity == 'Unlimited'}"/>
</td>
修改代码:
Java
<td>
<h:inputText id="inputCapacitySOCTxt" value="#{esriAGSServerAdd.capacity}" styleClass="long" disabled="true"/>
</td>
附上报错信息、截图
java
2024-12-10 11:28:25 com.sun.facelets.FaceletViewHandler handleRenderException
严重: Error Rendering View[/gisServer/gisServerAdd.xhtml]
javax.faces.FacesException: javax.el.ELException: /gisServer/gisServerAdd.xhtml @86,160 disabled="#{esriAGSServerAdd.capacity == 'Unlimited'}": Cannot convert Unlimited of type class java.lang.String to class java.lang.Long
at javax.faces.component.UIComponentBase$AttributesMap.get(UIComponentBase.java:1593)
at com.sun.faces.renderkit.RenderKitUtils.renderXHTMLStyleBooleanAttributes(RenderKitUtils.java:439)
at com.sun.faces.renderkit.html_basic.TextRenderer.getEndTextToRender(TextRenderer.java:128)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeEnd(HtmlBasicRenderer.java:160)
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:861)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:937)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:148)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:837)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:930)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:933)
at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:110)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:301)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.esri.arcgis.manager.web.util.FileUploadFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.esri.arcgis.manager.web.util.GZipFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.esri.arcgis.manager.web.util.ManagerWebFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:612)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:503)
at java.lang.Thread.run(Thread.java:619)
Caused by: javax.el.ELException: /gisServer/gisServerAdd.xhtml @86,160 disabled="#{esriAGSServerAdd.capacity == 'Unlimited'}": Cannot convert Unlimited of type class java.lang.String to class java.lang.Long
at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:76)
at javax.faces.component.html.HtmlInputText.isDisabled(HtmlInputText.java:202)
at sun.reflect.GeneratedMethodAccessor484.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.faces.component.UIComponentBase$AttributesMap.get(UIComponentBase.java:1585)
... 38 more
2024-12-10 11:28:25 com.sun.faces.lifecycle.Phase doPhase
严重: JSF1054: (Phase ID: RENDER_RESPONSE 6, View ID: /gisServer/gisServerAdd.xhtml) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@149d0a1]
2024-12-10 11:28:25 com.sun.faces.lifecycle.Phase doPhase
严重: JSF1054: (Phase ID: RESTORE_VIEW 1, View ID: ) Exception thrown during phase execution: javax.faces.event.PhaseEvent[source=com.sun.faces.lifecycle.LifecycleImpl@149d0a1]
2024-12-10 11:28:25 org.apache.catalina.core.ApplicationDispatcher invoke
严重: Servlet.service() for servlet Faces Servlet threw exception
java.lang.ClassCastException: javax.faces.component.UIViewRoot cannot be cast to com.sun.faces.application.StateManagerImpl$TreeNode
at com.sun.faces.application.StateManagerImpl.restoreTree(StateManagerImpl.java:723)
at com.sun.faces.application.StateManagerImpl.restoreTree(StateManagerImpl.java:665)
at com.sun.faces.application.StateManagerImpl.restoreView(StateManagerImpl.java:131)
at com.sun.faces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:311)
at com.sun.facelets.FaceletViewHandler.restoreView(FaceletViewHandler.java:316)
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:175)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:103)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at com.esri.arcgis.manager.web.util.ManagerWebFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:612)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:503)
at java.lang.Thread.run(Thread.java:619)
2024-12-10 11:28:25 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet Faces Servlet threw exception
java.lang.ClassCastException: javax.faces.component.UIViewRoot cannot be cast to com.sun.faces.application.StateManagerImpl$TreeNode
at com.sun.faces.application.StateManagerImpl.restoreTree(StateManagerImpl.java:723)
at com.sun.faces.application.StateManagerImpl.restoreTree(StateManagerImpl.java:665)
at com.sun.faces.application.StateManagerImpl.restoreView(StateManagerImpl.java:131)
at com.sun.faces.application.ViewHandlerImpl.restoreView(ViewHandlerImpl.java:311)
at com.sun.facelets.FaceletViewHandler.restoreView(FaceletViewHandler.java:316)
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:175)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:100)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:103)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:646)
at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:436)
at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:374)
at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:302)
at com.esri.arcgis.manager.web.util.ManagerWebFilter.doFilter(Unknown Source)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:612)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:503)
at java.lang.Thread.run(Thread.java:619)