tomcat启动时报Error listenerStart错误,访问web服务时报HTTP Status 404错误,
导致页面无法正常访问或其他问题出现。
这类问题通常都是因为在web.xml里面添加了
<listener>
<listener-class>
org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
而导致的。有些人的处理办法是把
org.springframework.web.context.ContextLoaderListener替换为 org.springframework.web.context.ContextLoaderServlet,
服务器就不会报出Error listenerStart的错误了,其实不然,即使错误不会报出了,
但作用出现了偏差。
究其原因,ContextLoaderListener是在服务 器刚启动时即执行的一个监听器,
用来监测jar包或者配置文件信息是否完整正确的,所以,
如果服务器中报出Error listenerStart的异常,引发的原因可能有很多,
因为是服务器内部出现了问题,所以不好调试,也不好用某种固定的方法解决。
最好的解决方法是查看tomcat的日志信息,通过日志的显示,
即可以非常清楚的确定因为问题的原因,从而快速的解决问题。
以Tomcat5.5为例,tomcat5.5在默认情况下,并不会自动记录日志信息,
需要人为配置。
1、在tomcat安装目录的common/classes中建立一个属性文件log4j.properties
2、在文件中写入日志的信息及日志记录的等级:
log4j.rootLogger=info,Console,R
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
#log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
log4j.appender.Console.layout.ConversionPattern=%d{yy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=${catalina.home}/logs/tomcat.log
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy.MM.dd HH:mm:ss} %5p %c{1}(%L):? %m%n
log4j.logger.org.apache=info, R
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=DEBUG, R
log4j.logger.org.apache.catalina.core=info, R
log4j.logger.org.apache.catalina.session=info, R
如果不会写,直接拷贝即可
3、将log4j.jar和commons-logging.jar添加到tomcat目录下的common/lib目录中
4、完成
注意:日志的记录会消耗磁盘空间,定时将日志文件进行清除,
否则会积存过多的日志文件导致磁盘空间不足。
以上确实可以解决很多问题,但我今天碰到的问题是添加完上述代码之后他在tomcat.log里面啥错误提示也没有,这个时候去看看tomcat目录下工程的日志文件(你已经启用了log4j),突然发现了错误提示,问题得以解决...
出现"Error listenerStart"一般是applicationContext.xml中的bean加载有问题。在用eclipse做webwork + spring + hibernate 的项目时一般都是用Myeclipse自动生成那些配置文件,而有些相关的jar<!--[if !supportEmptyParas]-->或者文件并没有加载在至项目中,以至引出奇怪的问题,又因为是自动生成的东西所以往往会忽略一些文件,而问题确恰恰是这些生成的文件所致,所以自动化的东西也未必一定是正确的,呵呵……