這兩天在搭建struts2+spring+hibernate框架的過程中遇到如題的錯(cuò)誤,在百度和谷歌上查了兩天,以致快到了崩潰的邊緣。最后還是解決了。這個(gè)問題的出現(xiàn),原因有很多,在這總結(jié)如下,以供分享:
框架搭建好后,啟動(dòng)服務(wù)器出現(xiàn)如下的信息:
log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester).
log4j:WARN Please initialize the log4j system properly.
2009-11-6 21:39:17 org.apache.catalina.core.StandardContext start
嚴(yán)重: Error listenerStart
2009-11-6 21:39:17 org.apache.catalina.core.StandardContext start
嚴(yán)重: Context startup failed due to previous errors
2009-11-6 21:39:17 org.apache.catalina.core.StandardHostDeployer install
信息: Installing web application at context path /tomcat-docs from URL file:D:/server/Tomcat 5.0/webapps/tomcat-docs
2009-11-6 21:39:17 org.apache.catalina.core.StandardHostDeployer install
信息: Installing web application at context path /webdav from URL file:D:/server/Tomcat 5.0/webapps/webdav
。。。。
可能出錯(cuò)的地方:
1.web.xml文件 web應(yīng)用部署描述符,里面的部署的xml文件或者類,如果這些找不到就會(huì)發(fā)生startup failed due to previous errors錯(cuò)誤。
2.如果在應(yīng)用spring的話,在配置文件applicationContext.xml中定義的類、xml文件找不到也會(huì)報(bào)這個(gè)錯(cuò)誤。
3.在web.xml,struts.xml,applicationContext.xml文件中自身有任何一點(diǎn)錯(cuò)誤都可能引起上面的這個(gè)問題,而不僅僅是附帶的文件錯(cuò)誤導(dǎo)致。
4.如果使用ibatis的話,在SqlMapConfig.xml中定義的xml文件找不到也會(huì)報(bào)這個(gè)錯(cuò)誤。(hibernate的配置在整合spring的時(shí)候使用spring的配置文件)
5.JDK的版本問題,最好使用JDK5.0 或者更高的版本。
6.Eclipse和tomcat的版本兼容問題
7.框架整合的過程中在導(dǎo)入到lib下的jar包沖突也可能產(chǎn)生該錯(cuò)誤。
8.jar包的缺少以及jar包的版本也可產(chǎn)生該錯(cuò)誤。
9.其他的原因
解決該問題的途徑:
由于上面問題可能已經(jīng)是web服務(wù)器內(nèi)部產(chǎn)生了錯(cuò)誤,而且IDE中的Log信息較少,問題的解決很難入手。
而該問題的產(chǎn)生經(jīng)常會(huì)導(dǎo)致頁面跳轉(zhuǎn)尋找不到文件的 Http 404 錯(cuò)誤。。。。。
可以通過在tomcat中添加log文件來讓log信息提示的更精確一些,即設(shè)置log輸出的等級(jí)。
1.tomcat的安裝路徑下tomcat home下的common文件夾下的classes文件夾中創(chuàng)建log4j.properties文件,即
。。。Apache Software Foundation/Tomcat 5.5/common/classes
log4j.properties配置如下(配置是轉(zhuǎn)載):
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
2.將log4j-1.2.15.jar和commons-logging.jar包拷貝到。。。Apache Software Foundation/Tomcat 5.5/common/lib下即可。
做好上面兩步,啟動(dòng)服務(wù)器的時(shí)候,會(huì)在tomcat的安裝路徑下的。。Apache Software Foundation/Tomcat 5.5/logs下自動(dòng)的
生成tomcat.log文件以記錄日志信息。
注:tomcat.log文件中的日志信息會(huì)記載很多,如果過大就可能產(chǎn)生磁盤空間不足的問題,建議定時(shí)的清除日志信息。
通過上面的日志文件信息可以定位到比較具體的問題根源,在仔細(xì)的查看問題一一攻破即可解決。
我在搭建框架之后,在web.xml文件中配置的歡迎頁面顯示的時(shí)候報(bào)404的錯(cuò)誤,通過上面的途徑找到了兩個(gè)錯(cuò)誤,雖然花了兩天的時(shí)間,最終還是解決了。