1

EAR と 4 つの WAR を含む Java EE プロジェクトがあります。戦争で使用されたポジョがいくつかあります。これらは、静的変数とメソッドを含むクラスであり、WAR 全体で同じでなければなりません。それらはどこに配置する必要がありますか?

いくつかの背景: 私は戦争の 1 つで頻繁に使用される pojos でプロジェクトを継承しました。ただし、4 つの WAR のすべてが、いくつかの新しい静的にアクセスされるクラスの同じインスタンスを参照するようにしたかったのです。各WARは静的クラスの独自のランタイムインスタンスを取得するように見え、あるWARでクラスを変更しても、別のWARでクラスが変更されなかったため、これは戦争の1つで開催されたものでは不可能でした。

これに対抗するために、JAR にインストールしてサーバーにデプロイしました。ただし、プロジェクトがデプロイされるたびに、JAR が変更されている場合は、JAR もビルドしてサーバーにインストールする必要があります。

ここでそれを展開する人はこのアーキテクチャが気に入らないので、別の方法があるのではないかと思いましたか?

4

1 に答える 1

3

はい、WAR ファイルはそれぞれ独自のクラスローダーの下にロードされるため、互いのクラスは表示されません。

EAR のルートに JAR ファイルを配置し、各 WAR のマニフェストで参照できます。これらの JAR は「ユーティリティ JAR」と呼ばれることがあります。

この種の自己完結型の展開は、別の場所に個別の JAR ファイルを配置するよりも望ましいことに同意します。

于 2013-04-05T08:11:05.697 に答える