学习Portal过程中碰到无法打开地图一个案例,将处理过程记录一下 环境:
机器1: OS: Windows7 ArcGIS Portal 10.5 ArcGIS WebAdaptor 10.5 机器名:testpc.esri.com ip:192.168.220.144
机器2: OS: Windows 10 ArcGIS Server 10.5 ArcGIS WebAdaptor 10.5 机器名:desktoptest.esri.com IP:192.168.100.112
机器2上的ArcGIS Server已经作为机器1上的Portal联合服务器。
症状: 使用Portal的Map Viewer工具打开某个WMS服务,报如下错误:
从错误上发现是服务https://desktoptest.esri.com/arcgis/services/SampleWorldCities/MapServer/WMSServer无法访问了。
直接访问该服务发现报404错误。
不用443端口,直接使用6443端口发现可以直接访问。由此可以判断是443端口的问题,那应该是Tomcat的问题了。
查看Tomcat的启动日志,发现如下错误:
二月 08, 2017 4:03:55 下午 org.apache.catalina.core.StandardService initInternal 严重: Failed to initialize connector [Connector[HTTP/1.1-443]] org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-443]] at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:107) at org.apache.catalina.core.StandardService.initInternal(StandardService.java:560) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:840) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) at org.apache.catalina.startup.Catalina.load(Catalina.java:642) at org.apache.catalina.startup.Catalina.load(Catalina.java:667) at sun.reflect.NativeMethodaccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:253) at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:427) Caused by: org.apache.catalina.LifecycleException: PRotocol handler initialization failed at org.apache.catalina.connector.Connector.initInternal(Connector.java:980) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) … 12 more Caused by: java.net.BindException: Address already in use: JVM_Bind :443 at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:413) at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:665) at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:452) at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119) at org.apache.catalina.connector.Connector.initInternal(Connector.java:978) … 13 more
从日志中能够看到是443端口被别的应用占用了。
使用netstat和tasklist查看443被那个进程占用了
C:/windows/system32>netstat -abno|find "443" TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 3164 TCP 0.0.0.0:6443 0.0.0.0:0 LISTENING 7448 TCP 192.168.100.112:59016 180.97.34.148:443 ESTABLISHED 7240 TCP [::]:443 [::]:0 LISTENING 3164 TCP [::]:6443 [::]:0 LISTENING 7448C:/windows/system32>tasklist|find "3164"vmware-hostd.exe 3164 Services 0 45,064 K原来是vmware的监护进程占用了443端口。
停止wmwarehostd进程
C:/windows/system32>net stop vmwarehostdVMware Workstation Server 服务正在停止.VMware Workstation Server 服务已成功停止。重启Tomcat后,一切正常。
新闻热点
疑难解答