首頁 > 軟體

解決Tomcat啟動失敗:嚴重 [main] org.apache.catalina.util.LifecycleBase.handleSubClassException 初始化元件失敗

2023-03-25 06:03:42

在安裝和設定Tomcat的過程中,出現了Tomcat啟動失敗的問題。

21-Oct-2022 13:41:57.148 嚴重 [main] org.apache.catalina.util.LifecycleBase.handleSubClassException 初始化元件[Connector[HTTP/1.1-8080]]失敗。
        org.apache.catalina.LifecycleException: 協定處理程式初始化失敗
                at org.apache.catalina.connector.Connector.initInternal(Connector.java:1055)
                at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                at org.apache.catalina.core.StandardService.initInternal(StandardService.java:556)
                at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:1045)
                at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
                at org.apache.catalina.startup.Catalina.load(Catalina.java:747)
                at org.apache.catalina.startup.Catalina.load(Catalina.java:769)
                at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
                at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                at java.lang.reflect.Method.invoke(Method.java:498)
                at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:305)
                at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:475)
        Caused by: java.net.BindException: Address already in use: bind
                at sun.nio.ch.Net.bind0(Native Method)
                at sun.nio.ch.Net.bind(Net.java:433)
                at sun.nio.ch.Net.bind(Net.java:425)
                at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
                at org.apache.tomcat.util.net.NioEndpoint.initServerSocket(NioEndpoint.java:246)
                at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:201)
                at org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1192)
                at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1205)
                at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:583)
                at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:79)
                at org.apache.catalina.connector.Connector.initInternal(Connector.java:1052)
                ... 13 more

出現這個問題的原因是Tomcat的預設埠8080被其他執行緒佔用,因此解決這個問題可以採取關掉佔用8080埠的執行緒的方法,或者採取更改Tomcat的埠的方法。

方法一(關掉佔用8080埠的執行緒)

1、win+R 開啟cmd, 輸入命令: netstat -ano

netstat -ano

2、輸入命令, 查詢專案設定的埠號對應的tcp號(最後一列的數位) netstat -ano|findstr 8080

netstat -ano|findstr 8080

3、終止程序 taskkill /f /t /im 對應的程序

taskkill /f /t /im 對應的程序

出現該問題的原因是因為許可權不夠,可以通過搜尋cmd,用管理員許可權開啟,然後輸入命令終止程序。

方法二(更改Tomcat的埠)

1)找到tomcat目錄/conf/server.xml

2)修改port的值,將port埠的值修改為80

啟動Tomcat

1、執行startup.bat檔案啟動tomcat

startup.bat

啟動成功!

2、瀏覽器存取測試

埠8080:在瀏覽器中輸入 http://localhost:8080/ 進行存取測試。
埠80:在瀏覽器中輸入 http://127.0.0.1:80 或 http://127.0.0.1 進行存取測試。
最終成功啟動。

到此這篇關於解決Tomcat啟動失敗:嚴重 [main] org.apache.catalina.util.LifecycleBase.handleSubClassException 初始化元件失敗的文章就介紹到這了,更多相關Tomcat啟動 初始化元件失敗內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com