學習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后,一切正常。
新聞熱點
疑難解答