SpringBoot中的tomcat如何修改和优化

  介绍

SpringBoot中的tomcat如何修改和优化?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。


在做项目的时候,把SpringBoot的项目打包成安装包了,在客户上面安装运行,一切都是那么的完美,可是发生了意外,对方突然说导出导入的文件都不行了。我急急忙忙的查看日志,发现报了一个错误

. io .IOException:临时上传位置(C: \ Windows \ Temp \ tomcat.1351070438015228346.8884 \ \ Tomcat根\ localhost \]工作无效   org.apache.catalina.connector.Request.parseParts (Request.java: 2821)   org.apache.catalina.connector.Request.parseParameters (Request.java: 3185)   org.apache.catalina.connector.Request.getParameter (Request.java: 1116)   org.apache.catalina.connector.RequestFacade.getParameter (RequestFacade.java: 381)   org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal (HiddenHttpMethodFilter.java: 84)   org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java: 107)   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java: 193)   org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 166)   org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal (CharacterEncodingFilter.java: 200)   org.springframework.web.filter.OncePerRequestFilter.doFilter (OncePerRequestFilter.java: 107)   org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java: 193)   org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java: 166)   org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java: 199)   org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java: 96)   org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java: 490)   org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java: 139)   org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java: 92)   org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java: 74)   org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java: 343)   org.apache.coyote.http11.Http11Processor.service (Http11Processor.java: 408)   org.apache.coyote.AbstractProcessorLight.process (AbstractProcessorLight.java: 66)   org.apache.coyote.AbstractProtocol ConnectionHandler.process美元(AbstractProtocol.java: 791)   org.apache.tomcat.util.net.NioEndpoint SocketProcessor.doRun美元(NioEndpoint.java: 1417)   在org.apache.tomcat.util.net.SocketProcessorBase.run (SocketProcessorBase.java: 49)   java.util.concurrent.ThreadPoolExecutor.runWorker(未知源)   java.util.concurrent.ThreadPoolExecutor Worker.run美元(未知来源)   org.apache.tomcat.util.threads.TaskThread WrappingRunnable.run美元(TaskThread.java: 61)   java.lang.Thread.run(未知源)

经过分析发现,这是tomcat在启动的时候会生成一个临时的上传文件保存的位置,但是这个位子默认是放在系统的临时文件夹中。当这个tomcat创建的文件夹被系统删除后,这时在上传文件就出现问题了。可能对方服务器装上了360管家,会自动删掉好似

针对这一个异常有以下解决方法
1。万能的重启,绝大多数的问题解决方法,“你重启一下试试”。但是这个方法只能解决得了一时,解决不了一世啊。
2。在配置文件中加上

server.tomcat.basedir=自定义目录

3。启动jar包的时候加上参数-Djava.io。tmpdir=自定义目录

 java jar xx。jar -Djava.io。tmpdir=自定义目录

4。添加配置bean

进口org.springframework.boot.web.servlet.MultipartConfigFactory;
  进口org.springframework.context.annotation.Bean;
  进口org.springframework.context.annotation.Configuration;
  
  
  进口javax.servlet.MultipartConfigElement;
  
  @ configuration
  公开课TomcatBeanConfig {/* *
  *文件上传临时路径
  */@ bean
  MultipartConfigElement MultipartConfigElement () {
  MultipartConfigFactory工厂=new MultipartConfigFactory ();
  factory.setLocation(“自定义目录“);
  返回factory.createMultipartConfig ();
  }
  }

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -分隔符- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

接着说优化,至于优化,我在解决上面的问题发现,tomcat中有一个配置

SpringBoot中的tomcat如何修改和优化