1

私のプロジェクトは、次の 3 つのテクノロジを使用して構築された Web プロジェクトです。

  1. プレゼンテーション レイヤーの Icefaces。

  2. ビジネス層の春。

  3. データ アクセス レイヤーの休止状態。

私のプロジェクトは WebSphere 6.1 にデプロイされ、ユーザーはファイルをアップロードできます。私は ice:inputFile コンポーネントを使用してアップロード プロセスを処理します...

最初の問題は次のとおりです。

アップロード プロセスが終了すると、次のパスの下にアップロードされたファイルが見つかるはずです: myWebProjectRoot/upload/"sessionId"/fileName.ext

ここで、「sessionId」は現在のセッション ID で名前が付けられたフォルダーであり、fileName.ex はユーザーがアップロードしたファイルです...

しかし、私が見つけたのは、フォルダー「sessionId」が作成されておらず、ファイルがアップロードフォルダーに直接保存されている..

私の構成は、サーバーにデプロイした icefaces ライブラリの component-showcase の構成に似ており、sessionId ディレクトリを正常に作成します....

どうすればいいのかわからない..助けてください...

2番目の問題は次のとおりです。

セッションが期限切れになると、sessionIdフォルダーが削除されると予想されます。クラスInputFileSessionCleanerのcomponent-showcaseのコードを変更し、フォルダーを削除し、その子をbottmから再帰的に削除しますが、現在の問題に直面することがあります:

一部のファイルは私のコードを使用して削除できません-別のプロセスで使用されている可能性があります-、その子の1つが削除されなかったため、フォルダーは削除されません。では、この場合はどうすればよいのでしょうか ... ?

私の考えは次のとおりです。サーバー側のバックグラウンドで実行されるプロセスを作成する方法はありますか? web.xml で指定されたセッション タイムアウト期間 - このプロセスはこのファイルを削除します....

誰でも私を助けることができます..すべての助けが感謝されます.....

4

1 に答える 1

0

2番目の質問への回答:

WebSphere には、ワーカー スレッドを作成し、それらがスケジュールに従って開始されるように調整する機能があります。このアプローチは WebSphere で完全にサポートされています。これを使用しても、スレッドの作成に関する Java EE の制限に違反することはありません。

WebSphere ドキュメントで非同期 Bean を検索してください。

WebSphere にはこの機能のいくつかの種類があり、そのうちの 1 つは一般的に標準化された形式であり、他のベンダーの App Server にも見られることがあります。ここにいくつかの説明があります:http://www.ibm.com/developerworks/library/specification/j-commonj-sdowmt/index.html

于 2009-06-03T10:31:01.790 に答える