我正在使用servlet来执行多个文件上传(使用Apache Commons FileUpload)。我的代码的一部分张贴在下面。我的问题是,如果我一次又一次地上传文件,应用程序服务器的内存消耗会大幅跳跃。 Apache Tomcat服务器似乎挂在内存上,永远不会返回它。堆空间耗尽内存。有时它会耗尽内存异常并抛出java heap space error
。Servlet文件上传
我关闭了所有的输入流,我认为问题出在ServletFileUpload
,谁能帮我解决如何关闭它。
ServletContext context=this.getServletConfig().getServletContext();
DiskFileItemFactory factory = new DiskFileItemFactory();
FileCleaningTracker fileCleaningTracker = FileCleanerCleanup.getFileCleaningTracker(context);
factory.setFileCleaningTracker(fileCleaningTracker);
if (isMultiPart) {
upload = new ServletFileUpload(factory);
try {
itr = upload.getItemIterator(request);
while (itr.hasNext()) {
item = itr.next();
if (item.isFormField()) {
...
用VisualVM连接到JVM,看看有什么记忆,我敢打赌它不会是comons上传的东西。 –