在项目中,一般会将文件临时保存到缓存目录

当时使用

File.createTempFile("tmp", ext,

(File) request.getServletContext().getAttribute(ServletContext.TEMPDIR))

创建临时文件时,项目一直运行正常,然而有一次报异常:

org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.io.IOException:

The temporary upload location [/tmp/tomcat.7104877156386249310.8070/work/Tomcat/localhost/ROOT] is not valid

检查文件目录,文件确实不在,检查代码,也未发现问题。实在不知道原因,只有重启了服务器,问题也就不再出现。

今天偶然查看官方文档,发现问题所在,也提供了解决方法

If you choose to use Tomcat on CentOS be aware that, by default, a temporary directory is

used to store compiled JSPs, file uploads etc. This directory may be deleted by tmpwatch

while your application is running leading to failures. To avoid this, you may want to customize

your tmpwatch configuration so that tomcat.* directories are not deleted, or configure

server.tomcat.basedir so that embedded Tomcat uses a different location

前往目录 /etc/cron.daily/ 中,修改 tmpwatch 文件:

#! /bin/sh

flags=-umc

/usr/sbin/tmpwatch "$flags" -x /tmp/.X11-unix -x /tmp/.XIM-unix -x /tmp/.font-unix -x /tmp/.ICE-unix -x /tmp/.Test-unix -X ‘/tmp/hsperfdata_*‘ 10d /tmp -X ‘/tmp/tomcat.*‘ 10d /tmp

/usr/sbin/tmpwatch "$flags" 30d /var/tmp

for d in /var/{cache/man,catman}/{cat?,X11R6/cat?,local/cat?}; do

if [ -d "$d" ]; then

/usr/sbin/tmpwatch "$flags" -f 30d "$d"

fi

done

可以看到添加了一行

-X ‘/tmp/tomcat.*‘ 10d /tmp

原文:http://www.cnblogs.com/wenhui92/p/7109862.html

tomcat服务器文件被清空,SpringBoot内置Tomcat缓存文件目录被意外删除导致异常相关推荐

  1. SpringBoot内置tomcat出现error:An incompatible version [1.1.32] of the APR based Apache Tomcat Native lib

    SpringBoot内置tomcat出现error:An incompatible version [1.1.32] of the APR based Apache Tomcat Native lib ...

  2. SpringBoot内置Tomcat支持多大并发量和连接数

    SpringBoot内置Tomcat,再默认设置中,Tomcat的最大线程数是200,最大连接数是10000.支持的并发量是指连接数,200个线程如何处理10000条连接的? Tomcat有两种处理连 ...

  3. SpringBoot内置tomcat出现APR版本过低解决办法

    SpringBoot内置tomcat出现error:An incompatible version [1.1.32] of the APR based Apache Tomcat Native lib ...

  4. Springboot内置Tomcat配置参数调优

    Springboot内置Tomcat配置参数调优,首先,线程数是一个重点,每一次HTTP请求到达Web服务器,Web服务器都会创建一个线程来处理该请求,该参数决定了应用服务同时可以处理多少个HTTP请 ...

  5. 优化之SpringBoot 内置tomcat 调优测试

    问题 怎么配置springBoot 内置tomcat,才能使得自己的服务效率更高呢? 基础配置 Spring Boot 能支持的最大并发量主要看其对Tomcat的设置,可以在配置文件中对其进行更改.我 ...

  6. SpringBoot内置Tomcat启动不了的原因

    SpringBoot内置Tomcat启动不了的原因: 1.需要加入spring-boot-starter-web依赖 [web中集成了tomcat.dispatcherServlet.xml-] &l ...

  7. SpringBoot 内置 Tomcat 线程数优化配置,你学会了吗?

    前言 本文解析springboot内置tomcat调优并发线程数的一些参数,并结合源码进行分析 参数 线程池核心线程数 server.tomcat.min-spare-threads:该参数为tomc ...

  8. SpringBoot内置tomcat启动原理

    前言 不得不说SpringBoot的开发者是在为大众程序猿谋福利,把大家都惯成了懒汉,xml不配置了,连tomcat也懒的配置了,典型的一键启动系统,那么tomcat在springboot是怎么启动的 ...

  9. SpringBoot内置Tomcat浅析

    一.SpringBoot框架内置Tomcat,开发非常方便,随着SpringBoot的框架升级,内置Tomcat也更新版本.本文SpringBoot框架版本:2.2.10. 1.如何查看SpringB ...

最新文章

  1. 笔记 JVM调优流程
  2. 存储过程与事务应用两三事
  3. linux 安腾,时代谢幕:英特尔安腾IA-64的Linux内核支持已成孤儿
  4. 解决IDEA中Maven加载依赖包慢的问题
  5. 接了几个APP逆向的私活,赚爆了!
  6. 一只测试喵的重新启航
  7. STM32F429与CC2530 ZigBee模块通信
  8. 2-4 CAD基础 修剪(trim)
  9. 计算机网络——FTP网络服务器
  10. pymol怎么做底物口袋表面_高质量PyMOL作图教程
  11. 解决uniapp调试过程中的请求跨域和环境配置
  12. 新至强Mesh架构解析之《西游大灌篮》
  13. calcite连接mysql_calcite简单入门
  14. Android Studio 使用Vuforia(高通)开发AR
  15. 七个习惯之五:知彼解己
  16. 【论文阅读】OUTRAGEOUSLY LARGE NEURAL NETWORKS: THE SPARSELY-GATED MIXTURE-OF-EXPERTS LAYER
  17. python:海龟交易法则 画唐奇安通道
  18. LeetCode | 0365. Water and Jug Problem水壶问题【Python】
  19. 基于liosam先验地图与NDT配准的全局重定位的一些个人理解
  20. [电源系列]二、低成本MOS快速关断电路原理分析

热门文章

  1. linux c编程操作数据库(sqlite3应用)
  2. 使用adb install 时 提示error: more than one device and emulator
  3. s6-8 TCP 拥塞控制
  4. 被3整除的子序列(简单dp)
  5. 《Saas模式云原生数据仓库应用场景实践》激活数据生产力,让分析产生价值
  6. 首次公开!菜鸟弹性调度系统的架构设计
  7. 由浅到浅入门批量渲染(一)
  8. 【枭·音频】感同声受——《暗影火炬城》PS5 HD震动制作
  9. 独立游戏荣获TGA最佳叙事奖,《极乐迪斯科》凭什么这么牛?
  10. 《穿越火线:枪战王者》手游客户端技术方案: 实时同步与手感优化