【问题标题】:Delete the file after download in WebService下载后在WebService中删除文件
【发布时间】:2012-10-01 12:05:25
【问题描述】:

我开发了一个应用程序,其中文件存储在文件服务器上(自定义)。有两个 Web 服务相互通信。 “WebServiceA”和“WebServiceB”。在两台不同的机器上。

WebServiceB 在调用 WebServiceA 时在 fileServer 上/从 fileServer 上存储/获取文件。

当客户端想要下载文件时,他调用WebServiceA 的方法。 WebServiceA 调用 WebServiceB 的下载方法。我启用了 MTOM 和 StreamingAttachment,因为我的文件很大,有些是 4KB,有些是 2GB。 我在 WebServiceB 上的 WebMethods 步骤是 从 FileServer(在不同的机器上)获取本地机器上的文件。 通过将文件作为参数传递,从 FileDataSource 创建 DataHandler。 将 DataHandler 对象返回给 WebServiceA 的方法。

问题是,经过一些操作,WebServiceB 的本地机器存储了大量在下载操作期间创建的文件。

我试过了 1)删除WebServiceB的finally块中的文件,导致WebServiceA上的文件为空

2) 创建一个临时文件。 temp = File.createTempFile("temp", ".txt"); temp.deleteOnExit(); 但这不会删除,因为我的 webserviceB 永远不会关闭。

3) 我无法在 WebServiceA 到 WebServiceB 之间实现“确认”或“按时间间隔删除”,因为我的经理拒绝了该解决方案。

java 中是否存在任何 genine 解决方案,告诉我文件目前没有被任何人使用。

我所有的机器都在 freebsd 8.2、java6、glassfish 3.1 和 jaxws 2.2 上运行。

【问题讨论】:

  • 很遗憾你的经理拒绝承认:这可能是我的选择。

标签: java web-services jax-ws


【解决方案1】:

简单的解决方案是有一个批处理项目定期删除文件。

【讨论】:

  • 感谢 Hemanth 在尝试了几乎所有选项后,(甚至 ack)我选择基于 lastModified() 函数删除文件。
猜你喜欢
  • 2014-12-05
  • 2023-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-13
相关资源
最近更新 更多