我有一個臨時文件,其數據通過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