1

JavaベースのWebアプリケーションを作成する過程で、次の問題が発生しました。

新しいディレクトリの作成:

Runtime.getRuntime().exec("mkdir /home/me/web/export"));

画像のコピー:

Runtime.getRuntime().exec("cp /home/me/images/a.jpg /home/me/web/export"

次に、JSPファイルに「a.jpg」へのダウンロードリンクを作成します。これまではすべて正常に動作しますが、WebアプリケーションをTomcatにデプロイしてファイルをダウンロードしようとすると、次のメッセージが表示されます。

Http Status 404 - The requested resource (/export/a.jpg) is not available.

ディレクトリを確認しましたが、画像はそこにあります。言及する価値のあることの1つは、画像の名前をたとえば「b.jpg」に変更し、再び「a.jpg」に名前を変更した後、リンクは正常に機能することです。

編集1
この問題は、JAVAAPIによって作成されたファイルにも影響します。Filewriterを使用して同じディレクトリに「data.xml」を作成しましたが、JSPページのリンクを介してアクセスしようとすると、以前と同じページが表示されました。

私は必死になってこの問題を解決しようとしましたが、すべてのユーザーに利用可能なすべてのアクセス許可を「chmod777ファイル」に与えることに成功しませんでした。

編集
2Tomcatを停止して再起動すると、すべてが正常に戻り、リンクが正常に機能していることに気付きました。tomcatはどういうわけかこの新しく作成されたファイルを保持していると思いますが、これを解決するために私にできることはありますか?

最終編集:
これはサーバーの問題であるため、ServerFaultに移動するのが論理的です。
皆様のご回答ありがとうございました。

4

1 に答える 1

0

昨日、別のJ2EEプロジェクトで作業しているときに、同様の問題が発生しました。驚いたことに、問題はIDE自体に起因しています。プロジェクトにNetbeansIDEを使用し、クライアントによってアップロードされたイメージをプロジェクトディレクトリ内の「/ web /export/」に保存しました。

そのとき私が気付いていなかったのは、Netbeansがファイルを「/ build / web」からtomcatにデプロイし、 「/ web」ではなく、実行時に「/ web/export」に配置されたイメージが必ずしも伝播されないことでした。ディレクトリを非同期で構築します。サーバーを再起動すると、ビルドプロセスが開始され、すべての変更がビルドディレクトリに伝達され、特定の問題が解決されます。

warファイルを手動でTomcatサーバーにデプロイした場合、そもそもこれらの問題に直面することはなかったでしょう。

于 2013-07-24T08:48:44.480 に答える