问题描述
第一次安装使用Tomcat,解压后双击bin\startup.bat启动Tomcat,DOS窗口闪烁后报错,出现如下报错信息(太长,不建议看,直接看原因分析)。
05-Oct-2020 19:36:17.145 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Server.鏈嶅姟鍣ㄧ増鏈? Apache Tomcat/8.5.58
05-Oct-2020 19:36:17.155 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鏈嶅姟鍣ㄦ瀯寤? Sep 10 2020 21:45:33 UTC
05-Oct-2020 19:36:17.155 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鏈嶅姟鍣ㄧ増鏈彿(: 8.5.58.0
05-Oct-2020 19:36:17.155 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鎿嶄綔绯荤粺鍚嶇О: Windows 10
05-Oct-2020 19:36:17.155 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log OS.鐗堟湰: 10.0
05-Oct-2020 19:36:17.155 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鏋舵瀯: amd64
05-Oct-2020 19:36:17.155 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Java 鐜鍙橀噺: C:\Program Files\Java\jdk1.8.0_241\jre
05-Oct-2020 19:36:17.156 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log Java铏氭嫙鏈虹増鏈? 1.8.0_241-b07
05-Oct-2020 19:36:17.156 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM.渚涘簲鍟? Oracle Corporation
05-Oct-2020 19:36:17.156 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: E:\devSoftware\apache-tomcat-8.5.58
05-Oct-2020 19:36:17.157 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: E:\devSoftware\apache-tomcat-8.5.58
05-Oct-2020 19:36:17.158 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細-Djava.util.logging.config.file=E:\devSoftware\apache-tomcat-8.5.58\conf\logging.properties
05-Oct-2020 19:36:17.158 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
05-Oct-2020 19:36:17.158 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細-Djdk.tls.ephemeralDHKeySize=2048
05-Oct-2020 19:36:17.159 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細-Djava.protocol.handler.pkgs=org.apache.catalina.webresources
05-Oct-2020 19:36:17.159 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細-Dignore.endorsed.dirs=
05-Oct-2020 19:36:17.161 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細-Dcatalina.base=E:\devSoftware\apache-tomcat-8.5.58
05-Oct-2020 19:36:17.167 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細-Dcatalina.home=E:\devSoftware\apache-tomcat-8.5.58
05-Oct-2020 19:36:17.171 淇℃伅 [main] org.apache.catalina.startup.VersionLoggerListener.log 鍛戒护琛屽弬鏁帮細-Djava.io.tmpdir=E:\devSoftware\apache-tomcat-8.5.58\temp
05-Oct-2020 19:36:17.174 淇℃伅 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent 浣跨敤APR鐗堟湰[1.7.0]鍔犺浇浜嗗熀浜嶢PR鐨凙pache Tomcat鏈満搴揫1.2.25]銆?
05-Oct-2020 19:36:17.177 淇℃伅 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR鍔熻兘锛欼Pv6[true]銆乻endfile[true]銆乤ccept filters[false]銆乺andom[true]銆?
05-Oct-2020 19:36:17.186 淇℃伅 [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR/OpenSSL閰嶇疆锛歶seAprConnector[false]锛寀seOpenSSL[true]
05-Oct-2020 19:36:17.195 淇℃伅 [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL鎴愬姛鍒濆鍖?[OpenSSL 1.1.1g 21 Apr 2020]
05-Oct-2020 19:36:17.349 淇℃伅 [main] org.apache.coyote.AbstractProtocol.init 鍒濆鍖栧崗璁鐞嗗櫒 ["http-nio-8080"]
05-Oct-2020 19:36:17.364 涓ラ噸 [main] org.apache.catalina.core.StandardService.initInternal Failed to initialize connector [Connector[HTTP/1.1-8080]]
org.apache.catalina.LifecycleException: 鍗忚澶勭悊绋嬪簭鍒濆鍖栧け璐?
at org.apache.catalina.connector.Connector.initInternal(Connector.java:1077)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.core.StandardService.initInternal(StandardService.java:552)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:848)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:136)
at org.apache.catalina.startup.Catalina.load(Catalina.java:639)
at org.apache.catalina.startup.Catalina.load(Catalina.java:662)
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:302)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:472)
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 sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
at org.apache.tomcat.util.net.NioEndpoint.bind(NioEndpoint.java:221)
at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1118)
at org.apache.tomcat.util.net.AbstractJsseEndpoint.init(AbstractJsseEndpoint.java:222)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:587)
at org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:75)
at org.apache.catalina.connector.Connector.initInternal(Connector.java:1075)
... 13 more
05-Oct-2020 19:36:17.368 淇℃伅 [main] org.apache.catalina.startup.Catalina.load Initialization processed in 650 ms
05-Oct-2020 19:36:17.404 淇℃伅 [main] org.apache.catalina.core.StandardService.startInternal 姝e湪鍚姩鏈嶅姟[Catalina]
05-Oct-2020 19:36:17.404 淇℃伅 [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.5.58
05-Oct-2020 19:36:17.434 淇℃伅 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 鎶妛eb 搴旂敤绋嬪簭閮ㄧ讲鍒扮洰褰?[E:\devSoftware\apache-tomcat-8.5.58\webapps\docs]
05-Oct-2020 19:36:18.721 璀﹀憡 [localhost-startStop-1] org.apache.catalina.util.SessionIdGeneratorBase.createSecureRandom 浣跨敤[SHA1PRNG]鍒涘缓浼氳瘽ID鐢熸垚鐨凷ecureRandom瀹炰緥鑺辫垂浜 哰1,044]姣銆?
05-Oct-2020 19:36:18.758 淇℃伅 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web搴旂敤绋嬪簭鐩綍[E:\devSoftware\apache-tomcat-8.5.58\webapps\docs]鐨勯儴 缃插凡鍦╗1,324]姣鍐呭畬鎴?
05-Oct-2020 19:36:18.776 淇℃伅 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 鎶妛eb 搴旂敤绋嬪簭閮ㄧ讲鍒扮洰褰?[E:\devSoftware\apache-tomcat-8.5.58\webapps\examples]
05-Oct-2020 19:36:19.227 淇℃伅 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web搴旂敤绋嬪簭鐩綍[E:\devSoftware\apache-tomcat-8.5.58\webapps\examples]鐨 勯儴缃插凡鍦╗451]姣鍐呭畬鎴?
05-Oct-2020 19:36:19.244 淇℃伅 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 鎶妛eb 搴旂敤绋嬪簭閮ㄧ讲鍒扮洰褰?[E:\devSoftware\apache-tomcat-8.5.58\webapps\host-manager]
05-Oct-2020 19:36:19.282 淇℃伅 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web搴旂敤绋嬪簭鐩綍[E:\devSoftware\apache-tomcat-8.5.58\webapps\host-manager]鐨勯儴缃插凡鍦╗38]姣鍐呭畬鎴?
05-Oct-2020 19:36:19.302 淇℃伅 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 鎶妛eb 搴旂敤绋嬪簭閮ㄧ讲鍒扮洰褰?[E:\devSoftware\apache-tomcat-8.5.58\webapps\manager]
05-Oct-2020 19:36:19.336 淇℃伅 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web搴旂敤绋嬪簭鐩綍[E:\devSoftware\apache-tomcat-8.5.58\webapps\manager]鐨勯儴缃插凡鍦╗34]姣鍐呭畬鎴?
05-Oct-2020 19:36:19.358 淇℃伅 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory 鎶妛eb 搴旂敤绋嬪簭閮ㄧ讲鍒扮洰褰?[E:\devSoftware\apache-tomcat-8.5.58\webapps\ROOT]
05-Oct-2020 19:36:19.383 淇℃伅 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Web搴旂敤绋嬪簭鐩綍[E:\devSoftware\apache-tomcat-8.5.58\webapps\ROOT]鐨勯儴 缃插凡鍦╗25]姣鍐呭畬鎴?
05-Oct-2020 19:36:19.405 淇℃伅 [main] org.apache.catalina.startup.Catalina.start Server startup in 2036 ms
原因分析
根据下图红框中的信息:初始化连接器[连接器[HTTP/1.1-8080]]失败;我猜测估计是端口冲突,毕竟太多使用8080端口了,果不然,还真是端口问题。
后面发现了更明显的提升: Caused by: java.net.BindException: Address already in use: bind 这句话的意思就是端口被占用了。
解决方案
找到conf\server.xml,打开,找到大约69行处的如下信息
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
// 改为8989,其他也行
<Connector port="8989" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />