gpt4 book ai didi

java - 嵌入式Tomcat中的 war 部署

转载 作者:行者123 更新时间:2023-11-28 22:28:09 24 4
gpt4 key购买 nike

我在 MAC 上有一个嵌入式 tomcat (7.0.64),我正在部署一个运行在 java 1.7.067 上的 war 文件。出于某种原因,我的 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 部署发生的方法。

有什么想法/建议吗?

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

最佳答案

行-

FINE: loadClass(com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl, false)

上面的消息意味着一个网络应用程序已经被已停止,但 TimerTask 尝试从中加载一个类。哪个网络应用程序启动了这个计时器?如果计时器是由这个网络应用程序启动的,那么它就是你的过错。你应该已经配置了一个javax.servlet.ServletContextListener 停止(取消)定时器时Web 应用程序停止。 web 时不能加载类应用程序已经停止。 如果计时器是由不同的 Web 应用程序启动的,则意味着你在某处有 PermGen 内存泄漏。确保你有JreMemoryLeakPreventionListener 在 server.xml 中配置。众所周知,Java XML API 中存在 PermGen 内存泄漏。 A抑制它的解决方法已添加到 JreMemoryLeakPreventionListener在 r884341 [1]马克有一个关于内存泄漏的演讲 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

希望这对您有所帮助。

关于java - 嵌入式Tomcat中的 war 部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33750064/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com