我们刚刚将 Tomcat 从 9.0 升级到 10.1,将 Java 从 8 升级到 11。一切都运行良好,只是现在临时文件堆积在
Apache Software Foundation\Tomcat 10.1\work\Catalina\localhost\root
中。这会导致 Java 堆空间问题后出现 502 错误。我们看到这样的错误..
07-Feb-2023 23:33:11.414 SEVERE [http-nio-81-exec-3] org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun Error running socket processor
java.io.UncheckedIOException: Cannot delete C:\Program Files\Apache Software Foundation\Tomcat 10.1\work\Catalina\localhost\root\upload_ac88107d_733f_4b9d_a3a3_9274a46f92e3_00000509.tmp
at org.apache.tomcat.util.http.fileupload.disk.DiskFileItem.delete(DiskFileItem.java:429)
at org.apache.catalina.core.ApplicationPart.delete(ApplicationPart.java:54)
at org.apache.catalina.connector.Request.recycle(Request.java:451)
at org.apache.catalina.connector.CoyoteAdapter.log(CoyoteAdapter.java:512)
at org.apache.catalina.connector.CoyoteAdapter.checkRecycled(CoyoteAdapter.java:536)
at org.apache.coyote.http11.Http11Processor.recycle(Http11Processor.java:1440)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.release(AbstractProtocol.java:1052)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:1024)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1734)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.io.IOException: Cannot delete C:\Program Files\Apache Software Foundation\Tomcat 10.1\work\Catalina\localhost\root\upload_ac88107d_733f_4b9d_a3a3_9274a46f92e3_00000509.tmp
... 14 more
有什么想法可能是什么问题吗?
有时没有管理员权限我们无法删除C:盘的文件, 也许这些解决方案会对您有所帮助:
使用管理权限运行您的 Java 应用程序。 (使用cmd)
如果仍然遇到问题,请检查文件权限。确保 Java 进程具有删除文件所需的权限。