org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
由ContextLoaderListener引起的错误大坑,搞了几个小时
我的ssm项目的web.xml是这样的
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<!-- 中文乱码处理 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Spring配置文件信息 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/spring/applicationContext.xml</param-value>
</context-param>
<!-- ContextLoaderListener监听器 -->
<!--<listener>-->
<!--<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>-->
<!--</listener>-->
<!-- 日志配置 -->
<context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>classpath:config/log4j.properties</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
<!-- 配置前端控制器 -->
<servlet>
<servlet-name>DispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:config/springmvc/springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>DispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<error-page>
<error-code>404</error-code>
<location>/WEB-INF/errors/404.jsp</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/WEB-INF/errors/500.jsp</location>
</error-page>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
搭建了一个ssm骨架后老是启动报错
如下:
F:\anzhuang\apache-tomcat-8.0.53-windows-x64\apache-tomcat-8.0.53\bin\catalina.bat run
[2019-08-07 07:08:50,469] Artifact ssmm:war exploded: Waiting for server connection to start artifact deployment...
Using CATALINA_BASE: "C:\Users\Ѧ��\.IntelliJIdea2018.2\system\tomcat\Unnamed_ssmm_3"
Using CATALINA_HOME: "F:\anzhuang\apache-tomcat-8.0.53-windows-x64\apache-tomcat-8.0.53"
Using CATALINA_TMPDIR: "F:\anzhuang\apache-tomcat-8.0.50-windows-x64\apache-tomcat-8.0.50\temp"
Using JRE_HOME: "C:\Program Files\Java\jdk1.8.0_131"
Using CLASSPATH: "F:\anzhuang\apache-tomcat-8.0.53-windows-x64\apache-tomcat-8.0.53\bin\bootstrap.jar;F:\anzhuang\apache-tomcat-8.0.53-windows-x64\apache-tomcat-8.0.53\bin\tomcat-juli.jar"
07-Aug-2019 19:08:52.326 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log Server version: Apache Tomcat/8.0.53
07-Aug-2019 19:08:52.328 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log Server built: Jun 29 2018 14:42:45 UTC
07-Aug-2019 19:08:52.328 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log Server number: 8.0.53.0
07-Aug-2019 19:08:52.328 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name: Windows 10
07-Aug-2019 19:08:52.328 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version: 10.0
07-Aug-2019 19:08:52.328 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture: amd64
07-Aug-2019 19:08:52.328 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home: C:\Program Files\Java\jdk1.8.0_131\jre
07-Aug-2019 19:08:52.329 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version: 1.8.0_131-b11
07-Aug-2019 19:08:52.329 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor: Oracle Corporation
07-Aug-2019 19:08:52.329 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE: C:\Users\Ѧ��\.IntelliJIdea2018.2\system\tomcat\Unnamed_ssmm_3
07-Aug-2019 19:08:52.329 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME: F:\anzhuang\apache-tomcat-8.0.53-windows-x64\apache-tomcat-8.0.53
07-Aug-2019 19:08:52.330 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=C:\Users\Ѧ��\.IntelliJIdea2018.2\system\tomcat\Unnamed_ssmm_3\conf\logging.properties
07-Aug-2019 19:08:52.330 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
07-Aug-2019 19:08:52.330 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote=
07-Aug-2019 19:08:52.333 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.port=1099
07-Aug-2019 19:08:52.333 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.ssl=false
07-Aug-2019 19:08:52.333 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcom.sun.management.jmxremote.authenticate=false
07-Aug-2019 19:08:52.333 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.rmi.server.hostname=127.0.0.1
07-Aug-2019 19:08:52.333 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
07-Aug-2019 19:08:52.334 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.protocol.handler.pkgs=org.apache.catalina.webresources
07-Aug-2019 19:08:52.334 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dignore.endorsed.dirs=
07-Aug-2019 19:08:52.334 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=C:\Users\Ѧ��\.IntelliJIdea2018.2\system\tomcat\Unnamed_ssmm_3
07-Aug-2019 19:08:52.334 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=F:\anzhuang\apache-tomcat-8.0.53-windows-x64\apache-tomcat-8.0.53
07-Aug-2019 19:08:52.334 ��Ϣ [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=F:\anzhuang\apache-tomcat-8.0.50-windows-x64\apache-tomcat-8.0.50\temp
07-Aug-2019 19:08:52.334 ��Ϣ [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library 1.2.17 using APR version 1.6.3.
07-Aug-2019 19:08:52.334 ��Ϣ [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
07-Aug-2019 19:08:53.402 ��Ϣ [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized (OpenSSL 1.0.2o 27 Mar 2018)
07-Aug-2019 19:08:53.541 ��Ϣ [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-apr-8080"]
07-Aug-2019 19:08:53.551 ��Ϣ [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-apr-8009"]
07-Aug-2019 19:08:53.555 ��Ϣ [main] org.apache.catalina.startup.Catalina.load Initialization processed in 1555 ms
07-Aug-2019 19:08:53.585 ��Ϣ [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina
07-Aug-2019 19:08:53.585 ��Ϣ [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.0.53
07-Aug-2019 19:08:53.598 ��Ϣ [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-apr-8080"]
07-Aug-2019 19:08:53.611 ��Ϣ [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-apr-8009"]
07-Aug-2019 19:08:53.615 ��Ϣ [main] org.apache.catalina.startup.Catalina.start Server startup in 60 ms
Connected to server
[2019-08-07 07:08:53,639] Artifact ssmm:war exploded: Artifact is being deployed, please wait...
07-Aug-2019 19:08:57.372 ��Ϣ [RMI TCP Connection(2)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
log4j:WARN No appenders could be found for logger (org.springframework.web.context.ContextLoader).
log4j:WARN Please initialize the log4j system properly.
07-Aug-2019 19:08:59.747 ���� [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
07-Aug-2019 19:08:59.748 ���� [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal Context [] startup failed due to previous errors
[2019-08-07 07:08:59,779] Artifact ssmm:war exploded: Error during artifact deployment. See server log for details.
这里呢把
这个注释掉就好了。
搭建ssm框架的时候还遇到一个问题,真的是无语了,
问题如图:
搭建步骤如下:
基础代码和文件目录等等处理完毕后导入jar包,注意,这里就要出问题了,
导包方式一:
找到准备好的jar包
点击ok即可,自动退回主界面
配置tomcat
先点击apply再点击ok
点击运行
错误大致如下
解决办法:
进入project structure
删除 test_sm:war exploded
再点击加号选择 from modules:
点击之后再点击ok,结果如图:
然后 apply , ok
再运行tomcat,问题就解决了,所以出错的原因是jar没有正确引用。所以得把生成的war包,如下图
给重新生成一下即可解决。
基础代码和文件目录等等处理完毕后导入jar包,注意,这里就要出问题了,
导包方式二:推荐这种方式
当项目基础代码文件都准备好时,导入jar包,最好是一开始就导入jar包
步骤如下:
建立一个lib文件夹,并且把jar包都复制进去:
进入dependencies
然后:
选择自己心目里的lib文件夹,然后点击ok
结果如图:
再点击apply, ok
这次,直接运行tomcat即可,方式二是在WEB-INF目录下建立lib目录,然后再在dependencies里选择这个项目的lib进行导入,这种方式确保了jar包可以导入,如果,假如再不行,可以模仿方式一,删除war包,重新生成war,运行即可。
war包入下图: