Java 嵌入式Tomcat中的War部署

Java 嵌入式Tomcat中的War部署,java,eclipse,tomcat,java-7,embedded-tomcat-7,Java,Eclipse,Tomcat,Java 7,Embedded Tomcat 7,我在MAC上有一个嵌入式tomcat(7.0.64),正在部署一个war文件,运行在Java1.7.067上。出于某种原因,我的tomcat服务器挂起了调用“tomcat.start()” 我确信它在部署war文件时遇到了困难。按照我的计算方法,我插入了一个不同的war文件(一个简单的hello world),这很有效 我尝试连接tomcat log.properties并将日志定向到文件中,希望得到任何线索。但我没有看到任何异常,日志记录在这些行停止 FINE: Loading class

我在MAC上有一个嵌入式tomcat(7.0.64),正在部署一个war文件,运行在Java1.7.067上。出于某种原因,我的tomcat服务器挂起了调用“tomcat.start()”

我确信它在部署war文件时遇到了困难。按照我的计算方法,我插入了一个不同的war文件(一个简单的hello world),这很有效

我尝试连接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部署的发生

有什么想法/建议吗

短暂性脑缺血发作

更新-我的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
该行-

FINE: loadClass(com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl, false)
上面的消息表示web应用程序已被删除 已停止,但TimerTask尝试从中加载类。 什么web应用程序启动了此计时器? 如果计时器是由此web应用程序启动的,则它是您的 过错您应该已经配置了 javax.servlet.ServletContextListener在以下情况下停止(取消)计时器: web应用程序停止。当您访问web时不能加载类 应用程序已停止。 如果计时器是由其他web应用程序启动的,则表示 你有永久性内存泄漏的地方。确保你有 在server.xml中配置的JreMemoryLeakPreventionListener。 众所周知,JavaXMLAPI中存在PermGen内存泄漏。A. 已将抑制它的变通方法添加到JreMemoryLeakPreventionListener 在r884341[1] 马克有一篇关于内存泄漏的演讲 将Apache Xerces的单独副本与web应用程序捆绑 也许会有帮助。如果根本原因是你没有取消,那就没用了 计时器。 [1]

希望这有帮助。

线路-

FINE: loadClass(com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl, false)
上面的消息表示web应用程序已被删除 已停止,但TimerTask尝试从中加载类。 什么web应用程序启动了此计时器? 如果计时器是由此web应用程序启动的,则它是您的 过错您应该已经配置了 javax.servlet.ServletContextListener在以下情况下停止(取消)计时器: web应用程序停止。当您访问web时不能加载类 应用程序已停止。 如果计时器是由其他web应用程序启动的,则表示 你有永久性内存泄漏的地方。确保你有 在server.xml中配置的JreMemoryLeakPreventionListener。 众所周知,JavaXMLAPI中存在PermGen内存泄漏。A. 已将抑制它的变通方法添加到JreMemoryLeakPreventionListener 在r884341[1] 马克有一篇关于内存泄漏的演讲 将Apache Xerces的单独副本与web应用程序捆绑 也许会有帮助。如果根本原因是你没有取消,那就没用了 计时器。 [1]


希望这能有所帮助。

日志文件中是否都有这些行?什么是log.properties?是的,这些是日志文件中的最后一行。这些都是日志文件中的行吗?什么是log.properties?是的,这是日志文件的最后几行。不确定“web应用程序已停止”是什么意思?现在我只部署这个(只有一个)应用程序。我希望知道的是,如果由于某种原因tomcat无法部署此应用程序,那么它应该抛出某种异常,指示缺少类/等详细信息。只有一个应用程序正在部署,如果其部署本身没有通过,那么我认为这个应用程序中的任何计时器都不会起作用。此外,我还尝试在类路径中捆绑XercesImpl.jar,这也没有帮助。JreMemoryLeak,对此不是很确定,但我会试一试。不确定“web应用程序已经停止”是什么意思?现在我只部署这个(只有一个)应用程序。我希望知道的是,如果由于某种原因tomcat无法部署此应用程序,那么它应该抛出某种异常,指示缺少类/等详细信息。只有一个应用程序正在部署,如果其部署本身没有通过,那么我认为这个应用程序中的任何计时器都不会起作用。此外,我还尝试在类路径中捆绑XercesImpl.jar,这也没有帮助。JreMemoryLeak,对这个不太确定,但我会试一试。