Проблема удаления файлов и папок - PullRequest
1 голос
/ 01 июня 2009

Мой проект - это веб-проект, построенный с использованием трех технологий:

  1. Icefaces для слоя представления.

  2. Пружина для бизнес-уровня.

  3. Спящий режим для уровня доступа к данным.

Мой проект развернут в WebSphere 6.1, и пользователь может загружать файлы, я использую компонент ice: inputFile для управления процессом загрузки ...

Первый выпуск:

Когда процесс загрузки закончится, я ожидаю найти загруженный файл по следующему пути: myWebProjectRoot / upload / "sessionId" /fileName.ext

где "sessionId" - это папка с именем текущего сеанса, а fileName.ex - это файл, загруженный пользователем ...

Но я обнаружил, что папка "sessionId" не создана, и файл хранится непосредственно в папке загрузки.

Моя конфигурация аналогична конфигурации компонента-витрины библиотеки icefaces, которую я развернул на своем сервере, и он успешно создал каталог sessionId ....

я не знаю, что делать .. пожалуйста, помогите мне ...

Второй выпуск:

Когда сессия истекла, я ожидаю, что папка sessionId будет удалена, я изменил код компонента-витрины в классе InputFileSessionCleaner и заставил его удалить папку, и ее дети рекурсивно формируются снизу вверх, но Некоторое время я сталкиваюсь с текущей проблемой:

Некоторые файлы не могут быть удалены с помощью моего кода - возможно, они используются другим процессом - поэтому папка не будет удалена, поскольку один из ее дочерних элементов не был удален. так что же делать в этом случае ...?

У меня в голове есть идея: Есть ли способ создать процесс, работающий в фоновом режиме на стороне сервера: этот процесс проверяет каталог загрузки, и если он обнаруживает какой-либо файл, созданный по крайней мере за 60 минут - какой период моего сеанса истек, указанный в web.xml- этот процесс удалит этот файл ....

любой может мне помочь .. любая помощь будет оценена .....

1 Ответ

0 голосов
/ 03 июня 2009

В ответ на ваш второй вопрос:

В WebSphere есть средство для создания рабочих потоков и организации их запуска в соответствии с расписанием. Этот подход полностью поддерживается в WebSphere - вы не нарушаете никаких ограничений Java EE при создании потоков, используя его.

Поиск асинхронных компонентов в вашей документации по WebSphere.

В WebSphere есть несколько разновидностей этой возможности, одна из которых является общепринятой формой, которую вы также можете найти на серверах приложений других производителей. Некоторое описание дано здесь: http://www.ibm.com/developerworks/library/specification/j-commonj-sdowmt/index.html

...