我有一个临时文件,其数据通过MTOM二进制附件作为SOAP响应的一部分返回。只要方法调用“结束”(即完成传送),我就想尽快清除它。我做这件事最好的办法是什么?我可以想出如何做到这一点的最好方法是在会话被销毁时将其删除,但我不确定是否有更直接的方法来实现此目的。Tomcat 6:如何在Web方法调用结束后删除临时文件?
仅供参考,我不使用安讯士,我使用jax-ws,如果这很重要的话。
更新:我不确定回答者是否真的了解问题。我知道如何在java中删除文件。我的问题是这样的:
@javax.jws.WebService
public class MyWebService {
...
@javax.jws.WebMethod
public MyFileResult getSomeObject() {
File mytempfile = new File("tempfile.txt");
MyFileResult result = new MyFileResult();
result.setFile(mytempfile); // sets mytempfile as MTOM attachment
// mytempfile.delete() iS WRONG
// can't delete mytempfile because it hasn't been returned to the web service client
// yet. So how do I remove it?
return result;
}
}
我喜欢这个解决方案!我的破解是将文件添加到会话变量,然后在用户会话过期时删除文件。我还放入了一个额外的检查来删除finalize()中的文件。 – 2009-09-18 21:00:43