Apache Tomcat 8启动缓慢(无法禁用JAR扫描程序)

xiozqbni  于 2022-11-13  发布在  Apache
关注(0)|答案(2)|浏览(125)

大家好,我现在使用的是Tomcat 8,我的项目加载遇到了困难。主要问题是需要3-5分钟才能进入网站。而通常情况下,加载只需要不到10秒。
以前没有这样的问题,只是今天随机发生。我已经尝试通过将下面的代码添加到context.xml中来禁用JAR扫描程序。根据日志中的时间戳,扫描占用了大部分时间。这是我能找到的唯一解决方案,但是这不起作用。如果有其他解决方案,请让我知道,非常感谢!:)

Log Message: org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.

<Context>
  ...
  <JarScanner scanClassPath="false" scanAllFiles="false" scanAllDirectories="false" 
    scanBootstrapClassPath="false" scanManifest="false">
  </JarScanner>
  ...
</Context>

日志中显示的另一个警告是

Log message: WARNING [localhost-startStop-5] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc The web application [harvester] registered the JDBC driver [org.h2.Driver] but failed to unregister it when the web application
6tdlim6h

6tdlim6h1#

请尝试以下文章:https://cwiki.apache.org/confluence/display/TOMCAT/HowTo+FasterStartUp#HowToFasterStartUp-Configureyourwebapplication
对我来说第一个建议给了显著的改善:启动时间从约4分钟加速到约1分钟。
这将禁用对jar进行注解扫描,因此只有当您的应用程序足够简单,可以将所有servlet配置保存在web.xml中时,这才有意义。
WEB-INF/web.xml文件中:
1.在元素上设置metadata-complete=“true”属性。
1.添加一个空元素。

<web-app [...] metadata-complete="true">
    <absolute-ordering/>
    [...]
</web-app>
q8l4jmvw

q8l4jmvw2#

看看你是否有足够的内存。有各种各样的原因导致tomcat启动缓慢。在我的情况下,它是内存不足。
但是,您也可以配置和增加tomcat的内存,增加内存有助于tomcat预先占用一些空间。
要做到这一点,去 Catalina 。 bat 和设置-

set CATALINA_OPTS=-Xms1024m -Xmx2048m;

or

set JAVA_OPTS=-Xms2048m -Xmx2048m;

相关问题