美文网首页
eclipse提示tomcat 7.0 请求45s超时

eclipse提示tomcat 7.0 请求45s超时

作者: java的小跟班 | 来源:发表于2017-08-06 19:13 被阅读0次

    小跟班是个新手,为了这个错误搞了大半天,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,不喜勿喷!

    相关文章

      网友评论

          本文标题:eclipse提示tomcat 7.0 请求45s超时

          本文链接:https://www.haomeiwen.com/subject/qilnlxtx.html