vlambda博客
学习文章列表

Tomcat异常_一个或多个listeners启动失败处理

一个老项目放到新的tomcat8.5.55里,启动不起来.tomcat日志里只有一句提示:

一个或多个listeners启动失败


重试了好几回,本地IDEA启动没有问题.一切正常.百度问题.提示加入日志,查看更详细的报错内容.

最快的解决方案是:在classes目录下面添加一个配置文件logging.properties内容为:handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler


加入日志:再次启动.终于看到了相关错误的日志:

Tomcat异常_一个或多个listeners启动失败处理

Tomcat异常_一个或多个listeners启动失败处理



看起来是日志包冲突了.查看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.启动成功.


那么问题来了.为什么之前都好好的呢?突然间就不行了? 我也不知道!