我正在使用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上傳的東西。 –