2

私たちはIBM製品を使用しており、通常、アプリケーションサーバーのリバースプロキシとしてIBM Http Servers(Apacheを読み取る)を使用します。パフォーマンス上の理由から、httpサーバーから静的コンテンツ(.gif、.jpg、.css、.htmlなど)を提供し、アプリケーションサーバーの負担を少し軽減します。

これまでのところ、ファイルをhttpサーバーに配布し、手動で構成する必要があります(カスタムスクリプトを作成することをお勧めします)。問題は、特にアプリを更新する必要がある場合に、すべての同期を維持するために必要な作業です。

Java EE製品は、この「箱から出してすぐに」サポートしますか?たとえば、マスターノードがアプリケーションを他のノードに配布し、すべての同期を維持するクラスター構成のように、アプリケーションサーバーにこれを自動的に実行させる方法はありますか?

4

2 に答える 2

2

これまでのところ、ファイルをhttpサーバーに配布し、手動で構成する必要があります(せいぜいカスタムスクリプトを作成します)。

構成部分を取得できるかどうかわかりません。通常、静的コンテンツをJSPやサーブレットと区別するのは非常に簡単です(一度実行すると、それほど変更されません)。

問題は、特にアプリを更新する必要がある場合に、すべての同期を維持するために必要な労力です。

自動化!Maven(またはAntですが、これにはもう少し作業が必要です)を使用すると、これを処理するためにWebプロジェクトから個別のアセンブリを簡単に作成できます。JavaEEノード用のWAR、HTTPサーバー用の静的コンテンツのzipです。

Java EE製品は、この「箱から出してすぐに」サポートしますか?

AFAIK、いいえ。驚いたことに、デプロイメントはJavaEEの弱点です。ただし、MavenやControlTierなどのツールを使用すると、適切なレベルの自動化に到達できます。

于 2009-11-26T15:09:31.830 に答える
0

私はIBM製品に精通していませんが、一般的な方法は、アプリケーション(主にWAR)をwarファイルではなくディレクトリーとしてデプロイして、ファイル自体にアクセスできるようにすることです。それよりも、デプロイメントディレクトリをapacheのエイリアスにマップするので、そこから静的コンテンツを提供できます。WEB-INFディレクトリへのすべてのアクセスをブロックし、jspファイル(.jsp、.jsf、.do、.actionなど)へのすべての要求をアプリケーションサーバーにルーティングする必要があることに注意してください。

WEB-INFのブロックは、次のディレクティブを使用して行われます。

<DirectoryMatch "(WEB-INF|META-INF)">  
  Order allow,deny 
  Deny from all 
  AllowOverride None 
</DirectoryMatch>
于 2009-09-04T06:36:24.650 に答える