前提我用tomcat做web容器时,当用inputFileUpload这个标签上传文件时,如果上传20几M的文件,连续上传会出现虚拟机内存泄漏,因为tomcat默认就不大,我发现的是如果你连续上传还没有到达虚拟机自动清理无用对象的时候,就已经超出了,这个时候就会发生这个错误,也就是说它在这个时间段内累计了
解决办法是加上storage="file"这个属性
不用这个属性是走的UploadedFileDefaultMemoryImp这个实现类,是把文件放在内存中,而类UploadedFileDefaultFileImpl使用一个非序列化域(transient field)来保存一个对FileItem实例的引用。只有当getInputStream()被调用时,才通过这个引用读取上传文件的内容。