Tomcat:添加了其他JAR-上下文重载



当部署完成时,我的开发tomee会自动重新加载上下文。日志显示已经添加了新的Jar,但我什么都没做。

为什么要重新加载上下文?

2018年9月3日上午8:29:35org.apache.openejb.server.cxf.rs.CxfRsHttpListener配置工厂信息:
com.dassault_systemes.federated_search.search_utils.answer.SearchAnswerMessageBodyWriter@1722ba492018年9月3日上午8:29:35org.apache.openejb.server.cxf.rs.CxfRsHttpListener配置工厂信息:
com.dassault_systemes.platform.restServices.MediaProviderJSON@118a5aca2018年9月3日上午8:29:35org.apache.openejb.server.cxf.rs.CxfRsHttpListener配置工厂信息:
com.dassault_systemes.platform.restServices.MediaProviderJSONP@64dec4ca2018年9月3日上午8:29:35org.apache.openejb.server.cxf.rs.CxfRsHttpListener配置工厂信息:
com.dassault_systemes.platform.ven.jackson.jaxrs.json.JsonParseExceptionMapper@5d35cfc82018年9月3日上午8:29:35org.apache.openejb.server.cxf.rs.CxfRsHttpListener配置工厂信息:
com.dassault_systemes.platform.ven.jackson.jaxrs.json.JacksonJaxbJsonProvider@5f47c6d52018年9月3日上午8:29:35org.apache.openejb.server.cxf.rs.CxfRsHttpListener配置工厂信息:
com.dassault_systemes.platform.ven.jackson.jaxrs.json.JacksonJsonProvider@1c588bfd2018年9月3日上午8:29:35org.apache.openejb.server.cxf.rs.CxfRsHttpListener配置工厂信息:
com.dassault_systemes.platform.ven.jackson.jaxrs.json.JsonMappingExceptionMapper@eb2f4282018年9月3日上午8:29:35org.apache.openejb.server.cxf.rs.CxfRsHttpListener配置工厂信息:
org.apache.openejb.server.cxf.rs.EJBAccessExceptionMapper@5d3567dc九月2018年3月3日8:29:35 FM org.apache.openejb.server.cxf.rs.CxfRsHttpListener日志端点信息:REST应用程序:http://localhost:9311/3dspace/resources/PreCost
->com.matrixone.apps.apr.costing.recost.service.PreCostServiceModular2018年9月3日上午8:29:35org.apache.openejb.server.cxf.rs.CxfRsHttpListener日志端点信息:服务URI:http://localhost:9311/3dspace/resources/PreCost/PreCostServices
->Pojo com.matrixone.apps.apr.costing.recost.service.PreCostService 2018年9月3日上午8:29:35org.apache.openejb.server.cxf.rs.CxfRsHttpListener日志端点信息:得到http://localhost:9311/3dspace/resources/PreCost/PreCostServices/getChartData->响应getChartData(HttpServlet请求)抛出异常〔2018-09-03 08:29:35460〕工件caster webapp:战争爆发:Artifact部署成功〔2018-09-03 08:29:35462〕Artifactcastor-webapp:战争爆发:部署耗时266999毫秒[TIMING]〔pool-8-thread-1〕信息2018-09-03T08:29:37266-呼叫[com.hm.pdm.core.common.department.DocumentLogicImpl.getAll()]5933毫秒后正常返回。-{}[TIMING][pool-8-thread-1]信息2018-09-03T08:29:37267-呼叫[com.hm.pdm.core.common.department.DocumentLogicImpl.getAll()]5935毫秒后正常返回。-{}2018年9月3日上午8:29:40org.apache.catalina.loader.WebappClassLoaderBase已修改信息:
已添加其他JAR 2018年9月3日8:29:40 FMorg.apache.catalina.core.StandardContext重新加载信息:重新加载名称为[/3dspace]的上下文已启动[SSPRING][ContainerBackgroundProcessor[StandardEngine[Catalina]]INFO2018-09-03T08:29:41005(AbstractApplicationContext.java:987)-正在关闭命名空间"SpringMVC servlet"的WebApplicationContext:启动日期【2018年9月3日星期一08:29:25】;父级:根WebApplicationContext-{}[TVC-SYSTEM][ContainerBackgroundProcessor[StandardEngine[Catalina]]INFO2018-09-03T08:29:41024(TVCServlet.java:179)-关闭进度…-电视系统[ContainerBackgroundProcessor[StandardEngine[Catalina]]INFO2018-09-03T08:29:41061(TVCServlet.java:182)-Heippa-{}[CASTOR][ContainerBackgroundProcessor[StandardEngine[Catalina]]DEBUG2018-09-03T08:29:41126(AjaxJSONTransactionFilter.java:101)-正在销毁AjaxJSONTransactionFilter…-〔CASTOR〕[ContainerBackgroundProcessor[StandardEngine[Catalina]]INFO2018-09-03T08:29:41131(日志.java:440)-org.tuckey.web.filters.urlrewrite.UrlRewriteFilter信息:销毁名为-{}[CASTOR][ContainerBackgroundProcessor[StandardEngine[Catalina]]DEBUG2018-09-03T08:29:41131(AjaxJSONServiceFilter.java:62)-销毁AjaxJSONService筛选器…-〔CASTOR〕[ContainerBackgroundProcessor[StandardEngine[Catalina]]DEBUG2018-09-03T08:29:41132(AjaxJSONTransactionFilter.java:101)-正在销毁QaTransactionFilter…-〔弹簧〕[ContainerBackgroundProcessor[StandardEngine[Catalina]]INFO2018-09-03T08:29:41171(AbstractApplicationContext.java:987)-关闭根WebApplicationContext:启动日期[9月3日星期一08:27:41CEST 2018];上下文层次结构的根-{}[CASTOR][ContainerBackgroundProcessor[StandardEngine[Catalina]]INFO2018-09-03T08:29:41175(AbstractExecutionsConfiguration.java:116)-即将销毁执行程序:CORE_ASYNC_JOBS-{}[CASTOR][ContainerBackgroundProcessor[StandardEngine[Catalina]]INFO2018-09-03T08:29:41175(AbstractExecutionsConfiguration.java:116)-即将销毁执行程序:CORE_ASYNCHRONOUSLY_WITH_DELAY-{}[SRING][ContainerBackgroundProcessor[StandardEngine[Catalina]]INFO2018-09-03T08:29:41175(MBeanExporter.java:449)-正在注销JMX在关闭时暴露了bean-{}[SSPRING][ContainerBackgroundProcessor[StandardEngine[Catalina]]INFO2018-09-03T08:29:41175(MBeanRegistrationSupport.java:241)-正在注销JMX暴露的beans-{}sep 032018 8:29:41 FMorg.apache.openejb.assembler.classic.assembler destroyApplication信息:正在取消部署应用程序:C: \GIT\castor\castor main\HM_PDM\src\castor webapp\target\castor webapp2018年9月3日8:29:42 FM org.apache.openejb.util.Options日志信息信息:使用"openjpa.Log=org.apache.openjb.openjpa.JULLOpenJPALogFactory"2018年9月3日8:29:42 FM org.apache.openejb.assembler.classic.assemblerdestroyApplication警告:未安装Log4j。以下内容属性将被忽略。2018年9月3日上午8:29:42org.apache.openejb.assembler.classic.assembler destroyApplication警告:忽略的属性覆盖属性'log4j.skipJansi'sep 03,2018 8:29:42 FM org.apache.openejb.assembler.classic.assemblerdestroyApplication信息:未部署的应用程序:C: \GIT\castor\castor main\HM_PDM\src\castor webapp\target\castor webapp2018年9月3日上午8:29:42org.apache.catalina.loader.WebappClassLoaderBaseclearReferencesThreads SEVERE:出现web应用程序[/3dspace]已启动名为[Timer-0]的线程,但未能停止该线程。这很可能会造成内存泄漏。2018年9月3日上午8:29:42org.apache.catalina.loader.WebappClassLoaderBaseclearReferencesThreads SEVERE:出现web应用程序[/3dspace]已启动名为[oracle.jdbc.driver.BlockSource.ThreaddCachingBlockSource.BlockReleaser]但未能阻止它。这很可能会创建内存漏2018年9月3日上午8:29:42org.apache.catalina.loader.WebappClassLoaderBaseclearReferences线程

我不能肯定TomEE,但Tomcat的算法非常简单:扫描webapps文件夹以查找更改的文件(或者文件夹,如果您使用Exploded WAR,则在所问问题方面完全相同)。

如果文件的上次修改/更新时间发生更改,则认为该文件已更改。另一种选择是文件是全新的。

当检测到这样的文件时,它会触发取消部署旧版本的应用程序并部署新版本。

请注意,此算法不会分析文件的内部更改,它只是无关紧要,如果您更改了文件,那么您可能希望它重新部署。

所以答案很简单——如果你不想重新部署,就不要更新webapps文件夹。