栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/466205.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号