tomcat启动报错:一个或多个listeners启动失败
这种错误一般是在javaweb项目中使用监听器时出现的。
造成的原因时
没有在web.xml文件中配置全局参数。
如图:
具体原理
当我们使用spring自带的工具类webapplicationcontextutils时,在它的方法contextloaderlistener方法中,会在web应用启动时就加载配置文件(为了防止每次执行业务都加载一次配置文件和spring容器,节约内存),所以把每次要加载的配置文件抽取出来,做成一个全局参数,得到后,继而创建上下文对象application,并将其存储到最大的域servletcontext中,从而可以在任何地方获得并使用application对象。
**注:**如果是自己写的监听器,上图中不需要写classpath:
启动tomcat服务器时出现错误
启动tomcat服务器时出现如下错误:
解决方式
是因为tomcat服务器启动多次,导致服务器的端口被占用,关闭服务器,然后重新启动就可以了。
六月 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严重: 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严重: 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
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
发表评论