tomcat默认reload引起宕机

Easter79
• 阅读 774

项目使用文件来保存修改,为了方便直接把文件放在src目录下;部署后发现过了一阵tomcat就会宕机;

日志为:

Oct 18, 2013 5:20:11 PM org.apache.catalina.core.StandardContext reload
INFO: Reloading this Context has started
Oct 18, 2013 5:20:11 PM org.apache.catalina.loader.WebappClassLoader clearThreadLocalMap
SEVERE: The web application [/a7list] created a ThreadLocal with key of type [java.lang.ThreadLocal] (value [java.lang.ThreadLocal@13c4a657]) and a value of type [com.caucho.services.server.ServiceContext] (value [com.caucho.services.server.ServiceContext@5384a3e4]) but failed to remove it when the web application was stopped. This is very likely to create a memory leak.

...-----

 tomcat 6.025之后引入了一种内存泄露的检查机制,会把不能垃圾收集的对像做日志。

当您重新部署您的应用程序时,Tomcat 将创建新的类加载器。旧类加载器必须是垃圾回收,否则你会 permgen 内存泄漏。

分析原因是由于运行项目的classes目录文件变更引起tomcat reload,同时reload时没有释放资源引起的宕机。

修改方式:

1、部署时修改tomcat 的server.xml文件,让项目变更时不reload。

修改文件:conf\server.xml

修改位置:

2、将变更文件放到项目代码外面。

采用的方式是两种都使用了~

点赞
收藏
评论区
推荐文章
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Easter79 Easter79
3年前
tomcat正常运行一段时间后,突然访问不了项目了
前言我将项目部署在tomcat服务器上,本来都是好好的,输入网站地址就能访问;但是第二天一早去就会发现网站访问提示404,文件无法找到;我就很懵了。排查1、我是用的是chrome浏览器,所以尝试了下其余浏览器看是否能够访问;以外的发现IE竟然可以访问。说明问题不在代码2、找到tomcat的安装目录,查看错误日志;在l
Wesley13 Wesley13
3年前
ubuntu 18.04 server下tomcat部署sprongboot项目
1springboot项目相关1.1修改pom.xml文件依赖如果要将最终的打包形式改为war的话,还需要对pom.xml文件进行修改,因为springbootstarterweb中包含内嵌的tomcat容器,所以直接部署在外部容器会冲突报
Easter79 Easter79
3年前
Spring的JNDI数据源连接池配置示例及Spring对JNDI实现分析
在使用Tomcat服务器SpringFramework进行JavaEE项目的开发部署的时候可以在Tomcat的配置文件中进行JDBC数据源的配置,具体步骤如下(这里省略了工程的建立步骤):1)添加如下代码到tomcat的conf目录下的server.xml中:Xml代码 收藏代码<Context
Wesley13 Wesley13
3年前
Javaweb入门基础(尚硅谷,佟刚老师)笔记(一)
\恢复内容开始第一个WEB应用程序:开发,并部署到Tomcat服务器下运行1)在eclipse新建一个javaProject2)在Java项目下创建WEB开发的目录结构:\WebContentWEBINFclasses(编译后的class文件必须放在该目录下)libweb.xml(从  \\a
Easter79 Easter79
3年前
SpringBoot打成war包,部署到Tomcat服务器
前言 SpringBoot默认达成jar包,默认使用内置的Tomcat。但考虑到项目需要打成war包部署到外部的Tomcat服务器中。把SpringBoot项目按照平常的web项目一样发布到tomcat容器下。1、修改pom.xml文件将默认的jar(默认创建项目的时候没有packaging)方式改为war。
Stella981 Stella981
3年前
SpringBoot打成war包,部署到Tomcat服务器
前言 SpringBoot默认达成jar包,默认使用内置的Tomcat。但考虑到项目需要打成war包部署到外部的Tomcat服务器中。把SpringBoot项目按照平常的web项目一样发布到tomcat容器下。1、修改pom.xml文件将默认的jar(默认创建项目的时候没有packaging)方式改为war。
Easter79 Easter79
3年前
Tomcat的常用配置
本文索引:配置tomcat监听80端口Tomcat虚拟主机Tomcat日志配置tomcat监听80端口默认tomcat监听的是8080端口,如果想直接输入ip就访问到网页,就需要进行如下操作:修改配置文件root@localhostsrcvim/usr/local/tomca
Easter79 Easter79
3年前
Tomcat7 自动加载类及检测文件变动原理
在一般的web应用开发里通常会使用开发工具(如Eclipse、IntelJ)集成tomcat,这样可以将web工程项目直接发布到tomcat中,然后一键启动。经常遇到的一种情况是直接修改一个类的源文件,此时开发工具会直接将编译后的class文件发布到tomcat的web工程里,但如果tomcat没有配置应用的自动加载功能的话,当前JVM中运行的class还是
Easter79 Easter79
3年前
Tomcat 免安装版一闪而过问题
1在使用免安装版Tomcat,遇到很多次运行startup.bat后,一个窗口一闪而过的。为了分析导致tomcat启动失败的原因,我们可以现在tomcat的目录下选中startup.bat文件,单击右键,选择编辑。2在startup.bat文本的最后敲上“pause”,保存后重新运行startup.bat\
Easter79
Easter79
Lv1
今生可爱与温柔,每一样都不能少。
文章
2.8k
粉丝
5
获赞
1.2k