1

我的项目是一个使用三种技术构建的 Web 项目:

  1. 表示层的 Icefaces。

  2. 业务层的弹簧。

  3. 数据访问层的休眠。

我的项目部署在 WebSphere 6.1 上,用户可以上传文件,我使用 ice:inputFile 组件来处理上传过程......

第一个问题是:

上传过程完成后,我希望在以下路径下找到上传的文件:myWebProjectRoot/upload/"sessionId"/fileName.ext

其中“sessionId”是一个以当前会话 ID 命名的文件夹,fileName.ex 是用户上传的文件...

但我发现:文件夹“sessionId”没有创建,文件直接存储在上传文件夹中。

我的配置就像我将它部署在我的服务器上的 icefaces 库的组件展示的配置,它成功创建了 sessionId 目录....

我不知道该怎么办..请帮助我...

第二个问题是:

当会话过期时,我希望 sessionId 文件夹将被删除,我在InputFileSessionCleaner类中修改了组件展示的代码,并使其删除了该文件夹,它的子级递归地形成了bottm,但有时我会遇到当前的问题:

使用我的代码无法删除某些文件-可能是它们被另一个进程使用-,因此该文件夹不会被删除,因为它的一个子文件夹没有被删除。那么在这种情况下该怎么办......?

我脑子里有个想法,那就是:有没有办法在服务器端创建一个在后台运行的进程:这个进程检查上传目录,如果找到至少 60 分钟创建的任何文件 - 这是我在 web.xml 中指定的会话超时期限 - 此过程将删除此文件....

任何人都可以帮助我..每一个帮助都会得到满足.....

4

1 回答 1

0

回答你的第二个问题:

WebSphere 具有创建工作线程并安排它们根据计划启动的工具。WebSphere 完全支持这种方法——使用它不会违反任何 Java EE 对线程创建的限制。

在您的 WebSphere 文档中搜索异步 Bean。

WebSphere 中有几种这种能力,其中一种是一种普遍标准化的形式,您也可以在其他供应商的应用服务器中找到它。这里给出了一些描述:http: //www.ibm.com/developerworks/library/specification/j-commonj-sdowmt/index.html

于 2009-06-03T10:31:01.790 回答