Tomcat异常_一个或多个listeners启动失败处理
一个老项目放到新的tomcat8.5.55里,启动不起来.tomcat日志里只有一句提示:
一个或多个listeners启动失败
重试了好几回,本地IDEA启动没有问题.一切正常.百度问题.提示加入日志,查看更详细的报错内容.
最快的解决方案是:在classes目录下面添加一个配置文件logging.properties内容为:
handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
加入日志:再次启动.终于看到了相关错误的日志:
看起来是日志包冲突了.查看maven依赖结构图
自己的日志依赖包如下:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
<scope>runtime</scope>
</dependency>
发现除了自己添加的之外,zookeeper,以及zkclient依赖包里已有对应的log4j.全部排除掉:
<dependency>
<groupId>com.github.sgroschupf</groupId>
<artifactId>zkclient</artifactId>
<version>0.1</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.6</version>
<exclusions>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
<type>pom</type>
</dependency>
排除完毕,打包扔上tomcat8.5.55,jdk1.7.80.启动成功.
那么问题来了.为什么之前都好好的呢?突然间就不行了? 我也不知道!