eclipse提示tomcat 7.0 请求45s超时

2017-08-06  本文已影响0人  java的小跟班

小跟班是个新手,为了这个错误搞了大半天,tomcat解压了无数遍最后才发现不是tomcat的问题。

问题:Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds. If the server requires more time, try increasing the timeout in the server editor.

这个问题小跟班发现有两种情况会出现,如下:

1、项目工程过大,服务器启动时间过长导致tomcat超时,这个问题百度上太多了,小跟班一开始也以为是这个问题,结果搞了半天不是这个原因,附上一个连接,来解决这种情况下的tomcat 45s超时:http://blog.csdn.net/u011067360/article/details/37884783

2、这就是小编遇到的Server Tomcat v7.0 Server at localhost was unable to start within 45 seconds问题了

错误信息一直打印这三句

45s后

因为这个超时的错误提示,让小跟班一直在找关于45s超时的问题,但是使用无法解决。

过来根据上边的三句警告才找到了真正的错误信息是什么:

仔细看异常发生在 (org.springframework.web.context.ContextLoader),即在ContextLoader时,spring framework需要使用log4j但此时log4j未寻找到其配置文件。其实解决方法,只要将log4j的listener放在spring context的前面就可以了。此外,如果按照默认的log4j配置文件位置也可以避免这个警告(src/log4j.properties,即WEB-INF/classes/log4j.properties),这是因为spring framework获取log时,log4j可以找到其配置文件了。

log4j 文件内配置如下(资源来自这个链接

### set log levels ###

log4j.rootLogger = debug ,  stdout ,  D ,  E

### \u8F93\u51FA\u5230\u63A7\u5236\u53F0 ###

log4j.appender.stdout = org.apache.log4j.ConsoleAppender

log4j.appender.stdout.Target = System.out

log4j.appender.stdout.layout = org.apache.log4j.PatternLayout

log4j.appender.stdout.layout.ConversionPattern =  %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n

### \u8F93\u51FA\u5230\u65E5\u5FD7\u6587\u4EF6 ###

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender

log4j.appender.D.File = logs/log.log

log4j.appender.D.Append = true

log4j.appender.D.Threshold = DEBUG ## \u8F93\u51FADEBUG\u7EA7\u522B\u4EE5\u4E0A\u7684\u65E5\u5FD7

log4j.appender.D.layout = org.apache.log4j.PatternLayout

log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### \u4FDD\u5B58\u5F02\u5E38\u4FE1\u606F\u5230\u5355\u72EC\u6587\u4EF6 ###

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender

log4j.appender.D.File = logs/error.log ## \u5F02\u5E38\u65E5\u5FD7\u6587\u4EF6\u540D

log4j.appender.D.Append = true

log4j.appender.D.Threshold = ERROR ## \u53EA\u8F93\u51FAERROR\u7EA7\u522B\u4EE5\u4E0A\u7684\u65E5\u5FD7!!!

log4j.appender.D.layout = org.apache.log4j.PatternLayout

log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

web.xml中配置如下(切记!一定要配置在spring监听器之前,这是因为spring framework获取log时,log4j可以找到其配置文件了

然后在启动服务器打印的错误信息就很明显了

log4j打印错误信息

是因为spring容器去访问数据库连接不到数据库,产生了超时。

因为小跟班工程中使用的ssh,配置了spring容器,在程序启动是会根据web.xml的配置进行加载spring的配置文件applicationContext.xml

小跟班的spring配置如下

spring容器去配置c3p0连接池时,会去访问数据库(这里小跟班用的MySQL)

重点就是小跟班的数据库服务没有启动!!!才导致了spring连接数据库是一直在等待,而tomcat等待spring配置加载完毕,才产生了最上边的两个错误信息(45s超时的错误信息!)

哈哈! 启动数据库服务就解决问题了

嘻嘻嘻,小跟班初学java,不喜勿喷!

上一篇下一篇

猜你喜欢

热点阅读