2009-06-15 8 views
3

多くのメンバーデータを保存するTomcatで動作しているWebサイトで作業しています。ウェブサイトをパッケージ化するにはどうすればいいですか

私は戦争を簡単に展開するために、最初から何も取り除かずに簡単に展開できるようにしたいと考えています。

私の最初の考えは、メンバーデータを戦争の外で独自のディレクトリに分割することでしたが、私の問題はそのコンテンツの一部をWebサイト(画像など)にリンクする必要があることです。

戦争を展開してからデータをコピーするよりも優れた解決策が必要です。誰にも何か提案はありますか?

+0

「メンバーデータ」はどのようなものですか?ユーザーがアップロードしたものは? Webアプリケーションを実行する異なるクライアントのカスタマイズ?あなたの質問から、なぜこの「メンバーデータ」がアプリから削除/追加されるのかは明らかではありません。 –

+0

はい、これはユーザーがアップロードしたものです。私は、それを変更せずに未解体の戦争を展開できるように、それを削除したい。 – Jesse

+0

デプロイメントの前にユーザーがアップロードしたコンテンツはどのようにありますか? –

答えて

4

あなたの最初の考えは正しいです。外部ディレクトリにデータを格納するのが最善の方法です。イメージリクエストで外部ディレクトリにアクセスするサーブレットを作成することで、イメージの問題を簡単に修正できます。

私のコードは投稿できませんが、ここでは同様のスニペットでレスポンスを作成しています。 FileServletを拡張したクラスを作成し、ディレクトリからファイルをロードするコードを書くだけです。その後

http://snippets.dzone.com/posts/show/4629

、あなたのweb.xmlに以下を追加:

<servlet> 
    <servlet-name>My File Servlet</servlet-name> 
    <servlet-class>my.package.FileServlet</servlet-class> 
    <load-on-startup>0</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>My File Servlet</servlet-name> 
    <url-pattern>/upload/*</url-pattern> 
</servlet-mapping> 

http://myapp.com/upload/userimage.jpgなどのすべてのリンクは、あなたは間違いなくあなたのアプリケーションからデータを分離する必要があり、サーブレット

+0

これは私が考えていたものですが、私はサーブレットのやり方を考えることができませんでした。 言ってみましょう、私はメンバーのディレクトリを/ usr/membersに分けます。リンクを返そうとすると、コンテナはそれを見つけることができません。サーブレットで何をする必要がありますか? – Jesse

+0

私はいくつかの説明とコードを追加しました。 – GvS

+0

多くのありがとう。私はちょうど小さなテストをして、それは素晴らしい仕事をした! – Jesse

1

によって作成されます。もともとメンバーデータ(明らかにイメージや他のもの)を入れていた理由がわからないので、私はより理想的な環境に基づいて提案を提供することができます。

多くの人に情報を格納し、複数の場所でアクセスする必要がある場合、なぜデータベースを使用することを選択しないのですか?おそらくPostgreSQLやMySQLのような無料のものでしょうか?

データベースにデータを格納する場合、HibernateのようなORMまたは基本的なJDBCライブラリのいずれかを使用して、Javaから取得するのは簡単です。これは、JavaでSQLとデータベース層を理解していることを前提としています。

特定のファイルにアクセスする必要がある場合は、サービスオリエンテッドアーキテクチャ(SOA)を作成し、安価なWebサービスを使用してURLに基​​づいてイメージをプルすることができます。これにより、ストレージを信頼ゾーン内の別のマシンにオフロードできます。

問題とサーバーの設定について詳しく説明することなく、優れたソリューションを提供することは難しいです。

+0

私たちは既にメンバーデータを保存するためにdbを使用していますが、画像のようなものにはファイルストレージが必要です。 なぜそれがそうであるかに関しては、まあ、それは私の選択ではありませんでした。私はサイトに表示するための画像への簡単なアクセスを提供するために行われたと仮定します。 – Jesse

関連する問題