人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Tomcatを使ったJavaのWebアプリケーションのファイルのアップロードについて質問です。
以下のような形で取得したコンテキストの下に、アップロードしたファイルにブラウザからアクセスできるようにするために、ファイルを保存するようにしています。
String path = getServletContext().getRealPath("files");

Webアプリケーションの更新を行うときに、Tomcat Webアプリケーションマネージャを使ってアプリケーションの「配備解除」をした後に、「WARファイルの配備」で更新したwarファイルを置いているのですが、その際に、アップロードしたファイルが全て消えてしまいします。

warファイルを更新するたびにアップロードしたファイルが消えては困るのですが、どのように対処すればいいのでしょうか?
データベースにアップロードしたファイルを保存することを検討していますが、他に方法がありましたらご教授ください。

よろしくお願いします。

●質問者: hananomai
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Java String Tomcat WAR Web
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● un0
●32ポイント

配備解除したときに消えるものを思われます。

その前にバックアップ

配備解除

ファイルの配備

リストア

でいかがでしょうか。

◎質問者からの返答

やっぱりバックアップを取るしかないですかねえ。

回答ありがとうございました。


2 ● たーちゃん
●16ポイント

アップロードしたファイルの保存場所をサーブレットの外に置けば大丈夫だと思います。

◎質問者からの返答

回答ありがとうございます。

サーブレットの外というのはコンテキストの外という意味でしょうか。

外に置くと、そのままだとブラウザからアクセスが出来なくなってしまいますので、ファイルを読みに行く処理を実装する必要がありますので、少し面倒かと思っています。

あるいは、アップロードしたファイルを保存する専用のコンテキストを作るという案を今思いつきましたが、そういう方法もありでしょうか。


3 ● たーちゃん
●32ポイント

ブラウザから直接ブラウズしたいということなら、mod_aliasを使ってアップロードしたファイルの保存場所を公開することもできます。

http://httpd.apache.org/docs/2.2/ja/mod/mod_alias.html

◎質問者からの返答

再度の回答ありがとうございます。

Apacheを使うのが前提であれば、mod_aliasを使うのが簡単そうですね。

私の今回の環境だと、

<Location />

ProxyPass ajp://localhost:8009/

</Location>

としてしまっているので、

Alias /upload "/upload"

<Location /upload>

ProxyPass !

</Location>

のようにしてやる必要がありました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ