Springboot嵌入式Tomcat类加载器运行缓慢

Springboot嵌入式Tomcat类加载器运行缓慢,第1张

Springboot嵌入式Tomcat类加载器运行缓慢

实际上,您的发现相当不错,并且您已经有90%回答了您的问题。这两个事实:

  1. “似乎停滞发生在oacloader.WebappClassLoaderbase中”
  2. “使用Jetty作为容器运行时,不会发生这种情况。”

表明这将是与Tomcat相关的问题,因为:

  1. o.a.c.
    代表
    org.apache.catalina
  2. 您的代码在另一个容器上运行良好。(码头)

您还观察到,此问题是在15秒钟的空闲时间后发生的。这完全符合Tomcat的默认

checkInterval
设置,即:

如果已将可重载设置为true,则检查修改的类和资源之间的秒数。默认值为15秒。

简而言之:当前您的

reloadable
标志为ON,并且Tomcat尝试重新加载您的类,这在开发过程中很方便,但是在任何其他情况下都是不可接受的。但是,关闭它的方法不是通过Spring-
boot。

解决方案:
您需要找到您的context.xml / server.xml,您将在其中找到如下所示的

Context
定义:

<Context ... reloadable="true">

删除

reloadable
标志,您已经解决了问题。该文件本身可以位于$ CATALINE_HOME / conf的$ CATALINA_base /
conf中,但实际上,要查找是否要使用某些IDE为您管理Tomcat,这些位置可能有些棘手。

如果使用Spring-boot嵌入式Tomcat:

您可以用来 *** 纵Tomcat设置的类是:

EmbeddedServletContainerCustomizer

通过此 *** 作,您可以添加

TomcatContextCustomizer
addContextCustomizers
),以便可以调用
setReloadable
上下文本身。

我没有看到任何原因使Spring-boot需要将此标志设置为true。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5441700.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存