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

大家好,我是烤鸭:
    下面又来踩坑实录了。主要是两个问题,第一是图片上传异常,第二是下载文件异常。其实都是在服务器上写入失败。有的人说是权限问题,但是这个一直没人动过。
    由于过年放假,导致测试环境很长时间没动过。

    The temporary upload location [/tmp/tomcat.xxx/work/Tomcat/localhost/etc] is not valid或者SXSSFSheet No  such  file  or  directory

1. 错误日志如下:

2020-02-04  18:24:02.788  [http-nio-9088-exec-4]  INFO    com.etc.etcdt.service.DtSupportService  -  耗时  26782
2020-02-04  18:24:03.452  [http-nio-9088-exec-4]  ERROR  o.a.c.c.C.[.[.[/etcdtsupport].[dispatcherServlet]  -  Servlet.service()  for  servlet  [dispatcherServlet]  in  context  with  path  [/etcdtsupport]  threw  exception  [Request  processing  failed;  nested  exception  is  java.lang.RuntimeException:  java.io.IOException:  No  such  file  or  directory]  with  root  cause
java.io.IOException:  No  such  file  or  directory
at  java.io.UnixFileSystem.createFileExclusively(Native  Method)
at  java.io.File.createTempFile(File.java:2024)
at  org.apache.poi.util.TempFile$DefaultTempFileCreationStrategy.createTempFile(TempFile.java:105)
at  org.apache.poi.util.TempFile.createTempFile(TempFile.java:60)
at  org.apache.poi.xssf.streaming.GZIPSheetDataWriter.createTempFile(GZIPSheetDataWriter.java:56)
at  org.apache.poi.xssf.streaming.SheetDataWriter.<init>(SheetDataWriter.java:63)
at  org.apache.poi.xssf.streaming.SheetDataWriter.<init>(SheetDataWriter.java:68)
at  org.apache.poi.xssf.streaming.GZIPSheetDataWriter.<init>(GZIPSheetDataWriter.java:48)
at  org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheetDataWriter(SXSSFWorkbook.java:292)
at  org.apache.poi.xssf.streaming.SXSSFSheet.<init>(SXSSFSheet.java:75)
at  org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:636)
at  org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:629)
at  com.etc.etcdt.util.ExcelUtils.exportExcelX(ExcelUtils.java:217)
at  com.etc.etcdt.controller.DtSupportController.exportList(DtSupportController.java:175)
at  sun.reflect.GeneratedMethodAccessor459.invoke(Unknown  Source)
at  sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at  java.lang.reflect.Method.invoke(Method.java:498)
at  org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
at  org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
at  org.springframework.web.servlet
2020-02-03 10:25:47.975 [TID:[Ignored Trace]] [http-nio-8082-exec-8]  ERROR [class:com.etc.controller.exception.AdminExceptionHandler | method:ExceptionHandler | line:35] logInfo==> 捕获到全局Exception异常
org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.5469282235024276004.8082/work/Tomcat/localhost/etc] is not validat org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.handleParseFailure(StandardMultipartHttpServletRequest.java:122)at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:113)at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.<init>(StandardMultipartHttpServletRequest.java:86)at org.springframework.web.multipart.support.StandardServletMultipartResolver.resolveMultipart(StandardServletMultipartResolver.java:91)at org.springframework.web.servlet.DispatcherServlet.checkMultipart(DispatcherServlet.java:1128)at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:960)at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:925)at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:974)at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:877)at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:851)at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:96)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:99)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.springframework.web.filter.HttpPutFormContentFilter.doFilterInternal(HttpPutFormContentFilter.java:109)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:93)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.springframework.cloud.sleuth.instrument.web.ExceptionLoggingFilter.doFilter(ExceptionLoggingFilter.java:48)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at brave.servlet.TracingFilter.doFilter(TracingFilter.java:86)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:200)at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198)at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)at org.apache.catalina.core.StandardHostValve.invoke$original$gOuLEzsV(StandardHostValve.java:140)at org.apache.catalina.core.StandardHostValve.invoke$original$gOuLEzsV$accessor$kSEkC0yr(StandardHostValve.java)at org.apache.catalina.core.StandardHostValve$auxiliary$zT9PiNzH.call(Unknown Source)at org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstMethodsInter.intercept(InstMethodsInter.java:93)at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java)at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342)at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:800)at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:806)at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: The temporary upload location [/tmp/tomcat.5469282235024276004.8082/work/Tomcat/localhost/etc] is not validat org.apache.catalina.connector.Request.parseParts(Request.java:2877)at org.apache.catalina.connector.Request.parseParameters(Request.java:3242)at org.apache.catalina.connector.Request.getParameter(Request.java:1136)at org.apache.catalina.connector.RequestFacade.getParameter(RequestFacade.java:381)at org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:84)... 33 common frames omitted

2. 解决方案

这篇文章说的挺好的。
https://blog.csdn.net/eumenides_/article/details/84066539
springboot打jar包通过java -jar启动的项目,如果上传文件会在linux的/temp/下生成一个tomcat*的文件夹,上传的文件先要转换成临时文件保存在这个文件夹下面。由于临时/tmp目录下的文件,在长时间(10天)没有使用的情况下,就会被系统机制自动删除掉。所以如果系统长时间无人问津的话,就可能导致上面这个问题。

解决办法:

1. 临时的,直接重新启动项目就行,会重新建立临时文件夹
2. 在配置文件中配置tomcat的临时目录:

server.tomcat.basedir=/home/temp

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/412732.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[css] 说说你对前端二倍图的理解?移动端使用二倍图比一倍图有什么好处?

[css] 说说你对前端二倍图的理解&#xff1f;移动端使用二倍图比一倍图有什么好处&#xff1f; 二倍图是指单位面积下设备像素与css像素个数之比为 4 的位图。移动端使用二倍图可以在Retina屏幕下保真展示。个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃…

人生苦短,我用python

0.10 |— 模块1&#xff1a;开发基础(23)0.11 |— 模块2&#xff1a;文件、函数、模块(29)0.12 |— 模块3&#xff1a;OO、网络编程(19)0.13 |— 模块4&#xff1a;并发编程(13)0.14 |— 模块5&#xff1a;Mysql数据库(16)0.15 |— 模块6&#xff1a;web前端开发(34)0.16 |— 模…

spring 多线程 事务 源码解析(一)

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享的是spring 多线程事务源码分析。 环境&#xff1a; spring-jdbc 5.0.4.REALEASE 今天分享一下spring事务的方法&#xff0c;这一篇还没涉及到多线程。 简单说一下doBegin的方法&#xff1a; 强转获取当前的事务对象&#…

[css] 你对视网膜(Retina)分辨率有了解吗?有没有在实际中使用过?

[css] 你对视网膜(Retina)分辨率有了解吗&#xff1f;有没有在实际中使用过&#xff1f; Retina分辨率指的是屏幕的物理分辨率达到了使得人眼难以看到单个物理像素&#xff1b;具体应用应该就是dpr > 1的屏幕适配&#xff0c;需要根据不同dpr给出合适尺寸的图片&#xff1b;…

Java学习之斐波那契数列实现

描述 一个斐波那契序列&#xff0c;F(0) 0, F(1) 1, F(n) F(n-1) F(n-2) (n>2)&#xff0c;根据n的值&#xff0c;计算斐波那契数F(n)&#xff0c;其中0≤n≤1000。 输入 输入数据的第一行为测试用例的个数t&#xff0c;接下来为t行&#xff0c;每行为一个整数n&#x…

[css] 移动端微信页面有哪些兼容性问题及解决方案是什么?

[css] 移动端微信页面有哪些兼容性问题及解决方案是什么&#xff1f; 1.rem方案通过reset js进行适配 2.vw 方案 搭配px to viewport进行适配个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 …

spring 多线程 事务的实际应用场景

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享的是spring 多线程 事务的实际应用场景&#xff1a; 上一篇讲了大概的原理,主要是针对事务的开始和执行过程(数据库链接&#xff0c;隔离级别&#xff0c;threadlocal线程绑定)。https://blog.csdn.net/Angry_Mills/article/…

Redis的过期策略和内存淘汰机制

过期策略 我们set key的时候&#xff0c;都可以给一个expire time&#xff0c;就是过期时间&#xff0c;指定这个key比如说只能存活1个小时&#xff0c;我们自己可以指定缓存到期就失效。 如果假设你设置一个一批key只能存活1个小时&#xff0c;那么接下来1小时后&#xff0c;r…

[css] 如何更改placeholder的字体颜色和大小?

[css] 如何更改placeholder的字体颜色和大小&#xff1f; <style>/* Chrome浏览器 */input::-webkit-input-placeholder {color: red;}/* 火狐浏览器 */input::-moz-placeholder {color: red;}/* IE */input:-ms-input-placeholder {color: red;}</style> <body…

[maven] springboot将jar包打包到指定目录

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一下springboot将jar包打包到指定目录下。 由于之前上线都是一个打包到一个jar&#xff0c;由于服务多了&#xff0c;1个包100多M&#xff0c;哪怕是小版本上线都需要重新上传jar包。 1.目的 将不常用的比如spring,druid等不常…

[css] 当一个元素被设置为浮动后,它的display值变为什么呢?

[css] 当一个元素被设置为浮动后&#xff0c;它的display值变为什么呢&#xff1f; 一个元素被设为绝对定位或者浮动后&#xff0c;其display计算值就变为了block&#xff0c;尽管其表现形式和inline-block类似——包裹内部元素且不超出包含块的特性。按照如下方式在控制台尝试…

Homebrew 安装使用

## Homebrew 安装使用> Homebrew是一款Mac OS平台下的软件包管理工具&#xff0c;拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令&#xff0c;就可以实现包管理&#xff0c;而不用你关心各种依赖和文件路径的情况&#xff0c;十分方便快捷。 #### 安装/…

[css] 为什么会出现浮动?在什么时候需要清除浮动呢?

[css] 为什么会出现浮动&#xff1f;在什么时候需要清除浮动呢&#xff1f; 因为在 div css 代替 table 布局之后&#xff0c;利用 float 很容易进行一些自适应的布局&#xff0c;比如双飞燕和圣杯布局。当然&#xff0c;float 原本的用途就是用来进行文字环绕图片的&#xf…

springboot启动后卡住 无日志的几种情况

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享一下springboot启动后无日志的问题。 1.场景复现 springboot项目启动后卡住无日志&#xff0c;肯定是报错了或者其他原因&#xff0c;并且日志没有打印出来。 1.1 说一下比较通用常见的场景。 检查一下 是否 exc…

VMware下Centos7快速搭建vsftpd

最简单快捷的实现ftp的功能,不考虑安全问题. 1.配置防火墙和selinux vi /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX can take one of these three values: # enforcing - SELinux security policy is enforced. # per…

[css] 写出div在不固定高度的情况下水平垂直居中的方法?

[css] 写出div在不固定高度的情况下水平垂直居中的方法&#xff1f; 我知道的有两种方法<!DOCTYPE html> <html><head><meta charset"utf-8"><title></title></head><style>* {padding: 0;margin: 0;}/* flex居中 …

hession调用json解析异常 com.caucho.hessian.io.HessianProtocolException: expected integer at 0x74 java.util

大家好&#xff0c;我是烤鸭&#xff1a; 采坑实录&#xff0c;使用hession报错 expected integer at 0x74 java.util.ArrayList。 1. 报错信息如下&#xff1a; 2020-03-18 14:27:48.057 [TID: N/A] [Apollo-RemoteConfigLongPollService-1] WARN [class:com.ctrip.fr…

[css] 移动端的布局用过媒体查询吗?写出例子看看

[css] 移动端的布局用过媒体查询吗&#xff1f;写出例子看看 media [type] and [condition] … not [condition] {… } media [condition] and/or/not [condition] … {… }其中&#xff1a;type "all" | "print" | "screen" | "speech&q…

Java通过cal.get(Calendar.MONTH)比真实月份少一个月

Calendar cal Calendar.getInstance();假如当前是12月&#xff0c;cal.get(cal.MONTH)是11月。 转载于:https://www.cnblogs.com/zhaogaojian/p/10050884.html

PMP读书笔记(第1章)

大家好&#xff0c;我是烤鸭&#xff1a;     今天做一个PMP的读书笔记。 第一章 引论1.1 概述指南和目的1.1.1 项目管理标准1.1.2 通用词汇1.1.3 道德与专业行为规范1.2 概述指南和目的1.2.1 项目1.2.2 项目管理的重要性1.2.3 项目、项目集、项目组合以及运营管理之间的关…