tomcat7下部署出现问题。各位大神帮帮忙 100
信息: Stopping service Catalina
2014-7-22 11:28:41 org.apache.catalina.loader.WebappClassLoader clearReferencesJdbc
严重: The web application [/dqdb] registered the JDBC driver [com.mysql.jdbc.Driver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered.
2014-7-22 11:28:41 org.apache.catalina.loader.WebappClassLoader clearReferencesThreads
严重: The web application [/dqdb] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak.
2014-7-22 11:28:41 org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks
严重: The web application [/dqdb] created a ThreadLocal with key of type [com.opensymphony.xwork2.inject.ContainerImpl$10] (value [com.opensymphony.xwork2.inject.ContainerImpl$10@4416b]) and a value of type [com.opensymphony.xwork2.inject.InternalContext[]] (value [[Lcom.opensymphony.xwork2.inject.InternalContext;@162f58e]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. 展开
在tomcat启动的时候报严重: Error filterStart这样的错误的原因有很多种,比如你在web.xml的配置语句写漏或写错或缺少某些jar包等等都有可能发生,子猴这里给出的不是针对某一具体错误如何解决,而是给出如何查找出错原因?
我发现网上很多朋友都碰到过这样的错误信息而束手无策,往往花费很多时间,而归根结底是不知道如何得知错误是怎么产生的,因为tomcat(往往都是使用的tomcat)只会在控制台给出很简单的两行出错信息。
但你是否知道,tomcat虽然在控制台只给出了简单的两行出错信息,但实际上在tomcat的日志信息中却给出了非常详细的出错信息呢?我相信很多朋友都抱怨tomcat在出错信息上给的不够明朗化,或许以前的版本是这样,子猴也并不是很了解,但至少6.0.x版本的绝对不是这样,在日志中给出的非常详细。
如果你是在本机上调试,日志文件的存放路径一般为:
/Tomcat 6.0/logs这样的目录,你可以查看如localhost.2010-04-17.log
这样的日志文件,比如,子猴今天碰到了这样的tomcat在控制台打印的错误信息:严重: Error filterStart,后来通过查看上面所说的日志,很快地就知道了错误是什么原因导致的,如下例:
严重: Exception starting filter struts2
Unable to load configuration. – file:/test/WebRoot/WEB-INF/classes/struts.xml:2:7
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:360)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:403)
at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:190)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
at org.apache.catalina.core.ApplicationFilterConfig.(ApplicationFilterConfig.java:108)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4356)
并很快据此进行了更正,解决了这个问题,所以,子猴希望这篇文章能有助于此类问题的解决。
建议你在ubuntu里安装一个和windows版本 一样的tomcat和JDK。
或者你可以这样试试:
就在tomcat的server.xml文件中,把
<!-- Prevent memory leaks due to use of
particular java/javax APIs-->
<Listener
className="org.apache.catalina.core.JreMemoryLeakPreventionListener"/
把这个监听给关了
监听关闭了,还是一样。项目在windows下,java和tomcat环境是一样的,都可以进入运行,移到linux下就不行了,项目可以访问主页面,登陆就不行