SpringBoot的jsp页面,长时间未访问后,再次访问就出现ClassNotFound的异常

项目环境

SpringBoot 1.5.9.RELEASE

centos 6.x

问题描述

本人公司项目中使用了SpringBoot+jsp,在产品上线一段时间后观察到,某些不常访问的JSP页面,在经过一段时间后再次访问,发送ClassNotFound的异常。同样的,其他有伙伴还有可能出现临时文件丢失这种现象。

问题原因

在之前的传统项目中,我们都是将代码打成war包放在tomcat下面运行,当我们访问jsp页面时,jvm会加载jsp页面,并将页面编译为class文件,这个class文件是存放在tomcat的work目录下面的,即缓存目录;在SpringBoot中,我们使用的内嵌的tomcat服务器,那么,内嵌服务器的work目录在哪里呢?经查阅官方文档得知,SpringBoot在centos服务器中,会将centos服务器/tmp目录作为work目录,存放临时文件;但恰恰十分巧合的是,centos服务器对/tmp目录,有一个tmpwatch操作,详情点击我,这个操作简单来讲,就是会删除/tmp目录下,240小时内未被访问过的文件,那么问题原因就十分明显了:jsp编译后的class文件,被tmpwatch这个操作删除掉了

问题解决

更改SpringBoot的临时目录:

server.tomcat.basedir=/usr/local/tmp

转载于:https://my.oschina.net/u/2312080/blog/3063674

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值