背景:【新手】java
將開發機子上的Tomcat連同其中的項目,一塊兒拷貝到服務器上,啓動tomcat的start.bat,而後報錯以下:apache
問題1:tomcat
Failed to initialize end point associated with ProtocolHandler ["http-apr-8080"]
java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??
at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:408)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:482)
at org.apache.coyote.AbstractProtocolHandler.init(AbstractProtocolHandler.java:355)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:910)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:101)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:101)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:781)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:101)
at org.apache.catalina.startup.Catalina.load(Catalina.java:572)
at org.apache.catalina.startup.Catalina.load(Catalina.java:595)
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:262)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:430)
2011-10-10 17:48:41 org.apache.catalina.core.StandardService initInternal
嚴重: Failed to initialize connector [Connector[HTTP/1.1-8080]]
org.apache.catalina.LifecycleException: Protocol handler initialization failed
at org.apache.catalina.connector.Connector.initInternal(Connector.java:912)
信息: Initializing ProtocolHandler ["ajp-apr-8009"]
2011-10-10 17:48:41 org.apache.coyote.AbstractProtocolHandler init
嚴重: Failed to initialize end point associated with ProtocolHandler ["ajp-apr-8009"]
java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??
嚴重: Failed to initialize connector [Connector[AJP/1.3-8009]]
org.apache.catalina.LifecycleException: Protocol handler initialization failed
at org.apache.catalina.connector.Connector.initInternal(Connector.java:912)
Failed to initialize end point associated with ProtocolHandler ["http-apr-8080"]
java.lang.Exception: Socket bind failed: [730048] ?????????×???(Э?é/???????/???)????í??服務器
嚴重: Failed to initialize connector [Connector[HTTP/1.1-8080]]ide
嚴重: Failed to initialize connector [Connector[AJP/1.3-8009]]性能
這些錯誤的核心!spa
分析問題:.net
發生這類型錯誤,在啓動tomcat的時候,就預測到了,服務器上本來就有一個tomcat6.0,那個tomcat也在啓動運行中,避免端口占用,更改了新的tomcat下的conf文件中的server.xml中的端口配置code
解決問題:server
將這三個位置的端口號都改變,若是還報相同的錯誤,說明端口號依然被佔用,注意錯誤中明顯的錯誤:
相似於這樣--->Failed to initialize connector [Connector[AJP/1.3-8009]]
那就更改相應位置的端口號。
直到全部的位置都更改正確能夠正常啓動便可。
錯誤2:
上面的問題解決完成後,啓動tomcat,又是閃退,盯着錯誤出現的時候,瞬間定住滾動條,截圖以下錯誤
java.net.BindException: Address already in use: JVM_Bind
分析問題:
不是端口占用已經解決了麼,項目都啓動完成了,爲何還會有相似的錯誤出現?
解決問題:
---->在Ctrl+R進入運行,cmd進入命令窗口
---->輸入netstat -ao
---->查看各個端口的佔用狀況和這個端口的PID
---->而後找到你tomcat中的那三個端口號,在這裏已經出現的,也就是被佔用的進程,對應最後一列的PID號
---->而後記住PID號,進入服務器的任務管理器,進入性能頁的資源監視器,點擊資源監視器中的CPU選項卡,對比PID號找到那個佔用了端口的進程
---->查找到對應的進程後,若是本進程沒有多大用,就直接幹掉他,要是有用--沒辦法,本身回去把本身tomcat中的那個被人家佔用的端口號改爲其餘沒有被用的端口號
---->更改完成以後,從新啓動本身的tomcat,就能夠啓動成功了