org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启动失败,使用监听器导致tomcat启动失败,解决方法
org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件org.apache.catalina.core.StandardContext.startInternal 由于之前的错误,Context[/demo4_war]启动失败网上有各种各样的解决方法大部分原因是因为Spr
org.apache.catalina.core.StandardContext.startInternal 一个或多个listeners启动失败,更多详细信息查看对应的容器日志文件
org.apache.catalina.core.StandardContext.startInternal 由于之前的错误,Context[/demo4_war]启动失败
网上有各种各样的解决方法大部分原因是因为Spring-web包没有导入成功导致(前提是pom.xml中已经导入Spring-web坐标)
解决方法为ctrl+alt+shift+s打开项目结构
打开项目中含有WEB-INF,lib文件夹下如图所示,并且右侧没有包需要导入,则包的导入没有问题,上图为正确显示
但是还有一种在写代码时出现的错误也会导致tomcat启动失败,即监听器的配置出现问题
使用监听器时,配置文件配置的文件路径前要加classpath:无论是web.xml还是applicationContext.xml配置文件,如下图
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<context:property-placeholder location="classpath:jdbc.properties">
我就是英文配置Jdbc.properties没有加clapath导致tomcat启动失败,
ContextLoaderListener监听器的正确使用步骤
第一步,pom.xml配饰Spring-web坐标
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
坐标导入时注意,导入与Spring版本一致的坐标
第二步web.xml配置监听器
<!--配置全局变量-->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<!--配置监听器-->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
第三步,使用WebApplicationContextUtils获取应用上下文对象
ServletContext servletContext = this.getServletContext();//获取servletContext对象,作为参数获取ApplicationContext对象
ApplicationContext app = WebApplicationContextUtils.getWebApplicationContext(servletContext);
UserService userService = app.getBean(UserService.class);
更多推荐
所有评论(0)