Spring 3.0.0中LogbackConfigListener启动失败求助
问题排查与解决
错误详情
错误 - org.apache.catalina.core.StandardContext.startInternal 一个或多个监听器启动失败。详细信息请查看对应容器日志文件
添加Logback配置监听器后出现上述错误,已将logback.xml放置在/src/main/resources/目录下,相关配置如下:
依赖配置
<logback.version>1.2.9</logback.version> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.32</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>${logback.version}</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-core</artifactId> <version>${logback.version}</version> </dependency> <dependency> <groupId>org.logback-extensions</groupId> <artifactId>logback-ext-spring</artifactId> <version>0.1.5</version> </dependency>
web.xml配置
<context-param> <param-name>logbackConfigLocation</param-name> <param-value>/resources/logback.xml</param-value> </context-param> <listener> <listener-class>ch.qos.logback.ext.spring.web.LogbackConfigListener</listener-class> </listener>
解决步骤
修正配置文件路径
src/main/resources下的文件打包后会直接放在classpath根目录,不存在/resources/层级路径。修改logbackConfigLocation参数值:<param-value>classpath:logback.xml</param-value>也可直接写
logback.xml,监听器默认会从classpath根目录查找配置文件。修复依赖版本兼容性
logback-ext-spring 0.1.5适配的是Logback 1.1.x版本,与你使用的Logback 1.2.9存在版本不兼容问题,会导致类初始化失败。建议升级logback-ext-spring到兼容1.2.x的版本,比如0.1.6:<dependency> <groupId>org.logback-extensions</groupId> <artifactId>logback-ext-spring</artifactId> <version>0.1.6</version> </dependency>查看容器日志定位根因
按照错误提示查看容器的详细日志(如Tomcat的catalina.out),日志中会包含监听器启动失败的具体异常栈,可精准定位类找不到、配置文件解析错误等具体问题。
内容的提问来源于stack exchange,提问作者arbitrary_A
相关产品推荐
相关产品推荐

