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

时间:2018-09-03 06:43:12

标签: java spring tomcat tomee

我的开发计划在部署完成后自动重新加载上下文。日志表明已经添加了新的Jar,但是我还没有做任何事情。

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

  

2018年9月3日8:29:35 FM   org.apache.openejb.server.cxf.rs.CxfRsHttpListener configureFactory   INFO:
  com.dassault_systemes.federated_search.search_utils.answer.SearchAnswerMessageBodyWriter@1722ba49   2018年9月3日8:29:35 FM   org.apache.openejb.server.cxf.rs.CxfRsHttpListener configureFactory   INFO:
  com.dassault_systemes.platform.restServices.MediaProviderJSON@118a5aca   2018年9月3日8:29:35 FM   org.apache.openejb.server.cxf.rs.CxfRsHttpListener configureFactory   INFO:
  com.dassault_systemes.platform.restServices.MediaProviderJSONP@64dec4ca   2018年9月3日8:29:35 FM   org.apache.openejb.server.cxf.rs.CxfRsHttpListener configureFactory   INFO:
  com.dassault_systemes.platform.ven.jackson.jaxrs.json.JsonParseExceptionMapper@5d35cfc8   2018年9月3日8:29:35 FM   org.apache.openejb.server.cxf.rs.CxfRsHttpListener configureFactory   INFO:
  com.dassault_systemes.platform.ven.jackson.jaxrs.json.JacksonJaxbJsonProvider@5f47c6d5   2018年9月3日8:29:35 FM   org.apache.openejb.server.cxf.rs.CxfRsHttpListener configureFactory   INFO:
  com.dassault_systemes.platform.ven.jackson.jaxrs.json.JacksonJsonProvider@1c588bfd 2018年9月3日8:29:35 FM   org.apache.openejb.server.cxf.rs.CxfRsHttpListener configureFactory   INFO:
  com.dassault_systemes.platform.ven.jackson.jaxrs.json.JsonMappingExceptionMapper@eb2f428   2018年9月3日8:29:35 FM   org.apache.openejb.server.cxf.rs.CxfRsHttpListener configureFactory   INFO:
  org.apache.openejb.server.cxf.rs.EJBAccessExceptionMapper@5d3567dc Sep   2018年3月3日8:29:35 FM org.apache.openejb.server.cxf.rs.CxfRsHttpListener   logEndpoints信息:REST应用程序:   http://localhost:9311/3dspace/resources/PreCost
  -> com.matrixone.apps.apr.costing.precost.service.PreCostServiceModular   2018年9月3日8:29:35 FM   org.apache.openejb.server.cxf.rs.CxfRsHttpListener logEndpoints信息:   服务URI:   http://localhost:9311/3dspace/resources/PreCost/PreCostServices
  -> Pojo com.matrixone.apps.apr.costing.precost.service.PreCostService 2018年9月3日8:29:35 FM   org.apache.openejb.server.cxf.rs.CxfRsHttpListener logEndpoints信息:   得到   http://localhost:9311/3dspace/resources/PreCost/PreCostServices/getChartData   ->响应getChartData(HttpServletRequest)引发异常[2018-09-03 08:29:35,460]工件Castor-webapp:war爆炸了:   Artifact已成功部署[2018-09-03 08:29:35,462] Artifact   castor-webapp:war爆炸了:部署花费了266999毫秒[TIMING]   [pool-8-thread-1] INFO 2018-09-03T08:29:37,266-调用   [com.hm.pdm.core.common.department.DepartmentLogicImpl.getAll()]   在5933 ms之后正常返回。 -{} [TIMING] [pool-8-thread-1]信息   2018-09-03T08:29:37,267-致电   [com.hm.pdm.core.common.department.DepartmentLogicImpl.getAll()]   5935毫秒后正常返回。 -{} Sep 03,2018 8:29:40 FM   org.apache.catalina.loader.WebappClassLoaderBase修改了INFO:
  已添加其他JAR,2018年9月3日8:29:40 FM   org.apache.catalina.core.StandardContext重新加载INFO:重新加载   名称为[/ 3dspace]的上下文已启动[SPRING]   [ContainerBackgroundProcessor [StandardEngine [Catalina]]] INFO   2018-09-03T08:29:41,005(AbstractApplicationContext.java:987)-   关闭名称空间“ SpringMVC-servlet”的WebApplicationContext:   启动日期[2018年9月3日星期一CEST];父母:根   WebApplicationContext-{} [TVC-SYSTEM]   [ContainerBackgroundProcessor [StandardEngine [Catalina]]] INFO   2018-09-03T08:29:41,024(TVCServlet.java:179)-关闭   进度...-{} [TVC-SYSTEM]   [ContainerBackgroundProcessor [StandardEngine [Catalina]]] INFO   2018-09-03T08:29:41,061(TVCServlet.java:182)-Heippa-{} [CASTOR]   [ContainerBackgroundProcessor [StandardEngine [Catalina]]]调试   2018-09-03T08:29:41,126(AjaxJSONTransactionFilter.java:101)-   销毁AjaxJSONTransactionFilter ...-{} [CASTOR]   [ContainerBackgroundProcessor [StandardEngine [Catalina]]] INFO   2018-09-03T08:29:41,131(Log.java:440)-   org.tuckey.web.filters.urlrewrite.UrlRewriteFilter INFO:销毁   称为-{} [CASTOR]   [ContainerBackgroundProcessor [StandardEngine [Catalina]]]调试   2018-09-03T08:29:41,131(AjaxJSONServiceFilter.java:62)-销毁   AjaxJSONServiceFilter ...-{} [CASTOR]   [ContainerBackgroundProcessor [StandardEngine [Catalina]]]调试   2018-09-03T08:29:41,132(AjaxJSONTransactionFilter.java:101)-   正在销毁QaTransactionFilter ...-{} [SPRING]   [ContainerBackgroundProcessor [StandardEngine [Catalina]]] INFO   2018-09-03T08:29:41,171(AbstractApplicationContext.java:987)-   关闭根WebApplicationContext:启动日期[Mon Sep 03 08:27:41   CEST 2018];上下文层次结构的根-{} [CASTOR]   [ContainerBackgroundProcessor [StandardEngine [Catalina]]] INFO   2018-09-03T08:29:41,175(AbstractExecutorsConfiguration.java:116)-   即将销毁执行者:CORE_ASYNC_JOBS-{} [CASTOR]   [ContainerBackgroundProcessor [StandardEngine [Catalina]]] INFO   2018-09-03T08:29:41,175(AbstractExecutorsConfiguration.java:116)-   即将销毁执行者:CORE_ASYNCHRONOUSLY_WITH_DELAY-{}   [SPRING] [ContainerBackgroundProcessor [StandardEngine [Catalina]]] INFO   2018-09-03T08:29:41,175(MBeanExporter.java:449)-取消注册   关闭时暴露于JMX的bean-{} [SPRING]   [ContainerBackgroundProcessor [StandardEngine [Catalina]]] INFO   2018-09-03T08:29:41,175(MBeanRegistrationSupport.java:241)-   取消注册暴露了JMX的bean-{} Sep 03,2018 8:29:41 FM   org.apache.openejb.assembler.classic.Assembler destroyApplication   信息:取消部署应用程序:   C:\ GIT \ castor \ castor-main \ HM_PDM \ src \ castor-webapp \ target \ castor-webapp   2018年9月3日8:29:42 FM org.apache.openejb.util.Options日志信息INFO:   使用'openjpa.Log = org.apache.openejb.openjpa.JULOpenJPALogFactory'   2018年9月3日8:29:42 FM org.apache.openejb.assembler.classic.Assembler   destroyApplication警告:未安装Log4j。下列   属性将被忽略。 2018年9月3日8:29:42 FM   org.apache.openejb.assembler.classic.Assembler destroyApplication   警告:“忽略的属性”会覆盖属性“ log4j.skipJansi” 9月3日,   2018 8:29:42 FM org.apache.openejb.assembler.classic.Assembler   destroyApplication信息:未部署的应用程序:   C:\ GIT \ castor \ castor-main \ HM_PDM \ src \ castor-webapp \ target \ castor-webapp   2018年9月3日8:29:42 FM   org.apache.catalina.loader.WebappClassLoaderBase   clearReferencesThreads严重:Web应用程序[/ 3dspace]出现   已启动名为[Timer-0]的线程,但未能停止该线程。   这很可能造成内存泄漏。 2018年9月3日8:29:42 FM   org.apache.catalina.loader.WebappClassLoaderBase   clearReferencesThreads严重:Web应用程序[/ 3dspace]出现   已经启动了一个名为   [oracle.jdbc.driver.BlockSource.ThreadedCachingBlockSource.BlockReleaser]   但未能阻止它。这很可能会创建一个内存   泄漏。 2018年9月3日8:29:42 FM   org.apache.catalina.loader.WebappClassLoaderBase   clearReferencesThreads

1 个答案:

答案 0 :(得分:1)

对于TomEE,我不能肯定地说,但是Tomcat的算法非常简单:  扫描webapps文件夹以查找更改的文件(如果使用爆炸的WAR,则扫描文件夹,在询问的问题上完全相同)。

如果文件的最后修改/更新时间更改,则认为该文件已更改。另一个选择是文件是全新的。

检测到此类文件后,它将触发该应用程序旧版本的取消部署并部署一个新文件。

请注意,此算法不会分析文件的内部更改,这无关紧要,如果您更改了文件,则可能希望将其重新部署。

因此答案很简单-如果您不想重新部署,请不要更新webapps文件夹。