解決tomcat啟動(dòng)報(bào)錯(cuò):一個(gè)或多個(gè)listeners啟動(dòng)失敗問(wèn)題
tomcat啟動(dòng)報(bào)錯(cuò):一個(gè)或多個(gè)listeners啟動(dòng)失敗
這種錯(cuò)誤一般是在javaweb項(xiàng)目中使用監(jiān)聽(tīng)器時(shí)出現(xiàn)的。
造成的原因時(shí)
沒(méi)有在web.xml文件中配置全局參數(shù)。
如圖:
具體原理
當(dāng)我們使用spring自帶的工具類WebApplicationContextUtils時(shí),在它的方法ContextLoaderListener方法中,會(huì)在web應(yīng)用啟動(dòng)時(shí)就加載配置文件(為了防止每次執(zhí)行業(yè)務(wù)都加載一次配置文件和spring容器,節(jié)約內(nèi)存),所以把每次要加載的配置文件抽取出來(lái),做成一個(gè)全局參數(shù),得到后,繼而創(chuàng)建上下文對(duì)象Application,并將其存儲(chǔ)到最大的域ServletContext中,從而可以在任何地方獲得并使用Application對(duì)象。
**注:**如果是自己寫的監(jiān)聽(tīng)器,上圖中不需要寫classpath:
啟動(dòng)tomcat服務(wù)器時(shí)出現(xiàn)錯(cuò)誤
啟動(dòng)Tomcat服務(wù)器時(shí)出現(xiàn)如下錯(cuò)誤:
解決方式
是因?yàn)門omcat服務(wù)器啟動(dòng)多次,導(dǎo)致服務(wù)器的端口被占用,關(guān)閉服務(wù)器,然后重新啟動(dòng)就可以了。
六月 23, 2023 7:01:29 上午 org.apache.coyote.AbstractProtocol init信息: Initializing ProtocolHandler ["http-bio-80"]六月 23, 2023 7:01:29 上午 org.apache.coyote.AbstractProtocol init嚴(yán)重: Failed to initialize end point associated with ProtocolHandler ["http-bio-80"]java.net.BindException: Address already in use: JVM_Bind <null>:80 at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:406) at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:610) at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:429) at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119) at org.apache.catalina.connector.Connector.initInternal(Connector.java:981) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:814) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139) at org.apache.catalina.startup.Tomcat.start(Tomcat.java:335) at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo.startContainer(AbstractRunMojo.java:1091) at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo.execute(AbstractRunMojo.java:512) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:956) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) at org.apache.maven.cli.MavenCli.main(MavenCli.java:192) 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.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347) at org.codehaus.classworlds.Launcher.main(Launcher.java:47)Caused by: java.net.BindException: Address already in use: JVM_Bind at java.net.DualStackPlainSocketImpl.bind0(Native Method) at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:102) at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:513) at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:180) at java.net.ServerSocket.bind(ServerSocket.java:375) at java.net.ServerSocket.<init>(ServerSocket.java:237) at java.net.ServerSocket.<init>(ServerSocket.java:181) at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49) at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:393) ... 36 more
六月 23, 2023 7:01:29 上午 org.apache.catalina.core.StandardService initInternal嚴(yán)重: Failed to initialize connector [Connector[HTTP/1.1-80]]org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-80]] at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106) at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:814) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:139) at org.apache.catalina.startup.Tomcat.start(Tomcat.java:335) at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo.startContainer(AbstractRunMojo.java:1091) at org.apache.tomcat.maven.plugin.tomcat7.run.AbstractRunMojo.execute(AbstractRunMojo.java:512) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81) at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:956) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288) at org.apache.maven.cli.MavenCli.main(MavenCli.java:192) 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.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347) at org.codehaus.classworlds.Launcher.main(Launcher.java:47)Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed at org.apache.catalina.connector.Connector.initInternal(Connector.java:983) at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102) ... 31 moreCaused by: java.net.BindException: Address already in use: JVM_Bind <null>:80 at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:406) at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:610) at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:429) at org.apache.coyote.http11.AbstractHttp11JsseProtocol.init(AbstractHttp11JsseProtocol.java:119) at org.apache.catalina.connector.Connector.initInternal(Connector.java:981) ... 32 moreCaused by: java.net.BindException: Address already in use: JVM_Bind at java.net.DualStackPlainSocketImpl.bind0(Native Method) at java.net.DualStackPlainSocketImpl.socketBind(DualStackPlainSocketImpl.java:102) at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:513) at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:180) at java.net.ServerSocket.bind(ServerSocket.java:375) at java.net.ServerSocket.<init>(ServerSocket.java:237) at java.net.ServerSocket.<init>(ServerSocket.java:181) at org.apache.tomcat.util.net.DefaultServerSocketFactory.createSocket(DefaultServerSocketFactory.java:49) at org.apache.tomcat.util.net.JIoEndpoint.bind(JIoEndpoint.java:393) ... 36 more
六月 23, 2023 7:01:29 上午 org.apache.catalina.core.StandardService startInternal信息: Starting service Tomcat六月 23, 2023 7:01:29 上午 org.apache.catalina.core.StandardEngine startInternal信息: Starting Servlet Engine: Apache Tomcat/7.0.37
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Javaweb項(xiàng)目啟動(dòng)Tomcat常見(jiàn)的報(bào)錯(cuò)解決方案
- 解決啟動(dòng)tomcat報(bào)錯(cuò)發(fā)生服務(wù)特定錯(cuò)誤1的問(wèn)題
- 解決Tomcat啟動(dòng)報(bào)錯(cuò):嚴(yán)重:Unable?to?process?Jar?entry?[META-INF/versions/9/module-info.class]
- tomcat啟動(dòng)報(bào)錯(cuò)jar not loaded的問(wèn)題
- Tomcat啟動(dòng)報(bào)錯(cuò)子容器啟動(dòng)失敗問(wèn)題及解決
相關(guān)文章
詳解關(guān)于tomcat切割catalina.out日志的三種方式
這篇文章主要介紹了詳解關(guān)于tomcat切割catalina.out日志的三種方式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02Tomcat運(yùn)行時(shí)在IDEA控制臺(tái)輸出信息中文亂碼的解決方案
本文主要給大家介紹Tomcat運(yùn)行時(shí)在IDEA控制臺(tái)輸出信息中文亂碼的解決方案,文中的解決方案介紹的非常詳細(xì),有需要的朋友可以參考閱讀下2023-08-08CentOS系統(tǒng)下安裝Tomcat7的過(guò)程詳解
今天開(kāi)始學(xué)習(xí)Tomcat7 ,學(xué)習(xí)前首先需要安裝,我用的系統(tǒng)是CentOS系統(tǒng),所以下面這篇文章主要介紹了CentOS系統(tǒng)下安裝Tomcat7的過(guò)程,需要的朋友可以參考下,下面來(lái)一起看看吧。2016-12-12為eclipse和IDEA配置tomcat服務(wù)器的方法
這篇文章主要介紹了為eclipse和IDEA配置tomcat服務(wù)器的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03在Tomcat中配置404自定義錯(cuò)誤頁(yè)面詳解
這篇文章主要介紹了在Tomcat中配置404自定義錯(cuò)誤頁(yè)面全解,需要的朋友可以參考下2017-03-03Tomcat簡(jiǎn)單網(wǎng)站部署的三種方式小結(jié)
本文主要介紹了Tomcat簡(jiǎn)單網(wǎng)站部署的三種方式小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05解決Tomcat啟動(dòng)報(bào)錯(cuò)Publishing?failed??multiple問(wèn)題
這篇文章主要介紹了解決Tomcat啟動(dòng)報(bào)錯(cuò)Publishing?failed??multiple問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09一文詳解tomcat是如何處理HTTP長(zhǎng)連接的
HTTP長(zhǎng)連接,也稱為持久連接,是一種使用同一個(gè)TCP連接來(lái)發(fā)送和接收多個(gè)HTTP請(qǐng)求/應(yīng)答的方法,那么tomcat作為最常用的WEB容器,是怎么處理HTTP的長(zhǎng)連接呢,下面我們就來(lái)深入了解下吧2024-01-01