我在MAC上有一个嵌入式tomcat(7.0.64)并且正在部署一个在java 1.7.067上运行的war文件。出于某种原因,我的tomcat服务器挂起了电话" Tomcat.start()"。
我确信它已经卡住了部署war文件。我认为这种方式我插入了一个不同的战争文件(一个简单的问候世界),并且有效。
我尝试连接tomcat log.properties并将日志定向到文件,希望获得任何线索。但我没有看到任何例外情况,这些线路的记录停止了,
FINE: Loading class from parent
Nov 16, 2015 9:30:01 PM org.apache.catalina.loader.WebappClassLoader loadClass
FINE: Loading class from parent
Nov 16, 2015 9:30:01 PM org.apache.catalina.loader.WebappClassLoader loadClass
FINE: loadClass(com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl, false)
Nov 16, 2015 9:30:01 PM org.apache.catalina.loader.WebappClassLoader loadClass
FINE: loadClass(com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl, false)
Nov 16, 2015 9:30:01 PM org.apache.catalina.loader.WebappClassLoader loadClass
FINE: loadClass(com.sun.org.apache.xerces.internal.impl.dv.dtd.DTDDVFactoryImpl, false)
Nov 16, 2015 9:30:01 PM org.apache.catalina.loader.WebappClassLoader loadClass
FINE: loadClass(com.sun.org.apache.xerces.internal.impl.dv.dtd.DTDDVFactoryImpl, false)
不确定它是否找不到" DTDDVFactoryImpl",因为这是jdk库本身的一部分,我也包括xercesimpl.jar。
基本上我正在寻找可以帮助我弄清楚什么或哪个类阻止Web部署发生的方法。
任何想法/指针?
TIA
更新 - 我的log.properties看起来像,
handlers=java.util.logging.ConsoleHandler, org.apache.juli.FileHandler
org.apache.juli.FileHandler.level=ALL
org.apache.juli.FileHandler.directory=./logs
org.apache.juli.FileHandler.prefix=tomcat-
java.util.logging.ConsoleHandler.level=ALL
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
org.apache.catalina.level=FINEST
org.apache.catalina.handlers=org.apache.juli.FileHandler
答案 0 :(得分:0)
行 -
FINE: loadClass(com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl, false)
上述消息表示Web应用程序已经存在 停止了,但TimerTask尝试从中加载一个类。 什么Web应用程序启动了此计时器? 如果计时器是由这个Web应用程序启动的,那么它就是你的 故障。你应该配置一个 javax.servlet.ServletContextListener在停止(取消)计时器时 Web应用程序停止。您无法在Web上加载类 申请已经停止。 或强> 如果计时器是由其他Web应用程序启动的,则意味着 你有PermGen内存泄漏的地方。确保你有 在server.xml中配置的JreMemoryLeakPreventionListener。 众所周知,Java XML API中存在PermGen内存泄漏。一个 解决它的解决方法已添加到JreMemoryLeakPreventionListener 在r884341 [1] Mark有关于Memory Leaks的演讲 http://people.apache.org/~markt/presentations/2010-11-04-Memory-Leaks-60mins.pdf 或强> 将Apache Xerces的单独副本与Web应用程序捆绑在一起 可能有帮助。如果根本原因是您未能取消,则无济于事 计时器。 [1] http://svn.apache.org/viewvc?view=revision&revision=r884341
希望这会有所帮助。