1

feng オフィス (オープン ソース、PHP、Apache、および MySQL のグループ ウェア) を変更しています。複数ファイルのアップロード機能を実装しようとしています。フローは次のとおりです。

(1) ユーザーがボタン (Web ページ内) をクリックすると、JNLP がダウンロードされます (2) [Choose File] ダイアログが表示されます。ユーザーが複数のファイルを選択して [アップロード] を押すと、(3) ファイルがループでアップロードされ、各ファイルの後にプログレス バーが更新されます。

ここで、mfu.jar (複数ファイル アップロード コア) 内に移動します。SwingWorker と一緒に apache httpclient-4.1.1 を使用して、ファイルをアップロードし、進行状況バーを更新します [マルチスレッドのもの。;-)]。奇妙なことに、Sun の Java を使用しているマシン (Sun のロゴが表示されます) では、問題なく動作しています。Open JDK または Oracle の Java (Oracle のロゴは、Linux または Windows、32 ビットまたは 64 ビットのいずれかで表示されます) を使用するマシンでは、異なるファイルが 1 回だけアップロードされるのではなく、そのうちの 1 つが複数回アップロードされることになります (同じ名前、同内容)!

手がかりはありますか?

PS: データが不十分な場合は申し訳ありませんが、要因を理解するために問題に集中するように努めました。

EIDT: どうやら httpclient-4.1.1 はある種のキャッシュ メカニズムを使用しているようですが、厳密な関係はまだ見つかりません。

4

1 に答える 1

0

問題解決。どういうわけか、マルチスレッドの非常に基本的なガイドラインのいくつかを考慮するのを忘れており、すべてSwingWorkerの が同時に同じものを使用しようとしていましたuploader。私たちはそれぞれSwingWorkrer独自のものを与えましたuploaderが、物事は完璧に機能しています。

于 2011-07-14T08:45:09.420 に答える