1

私は、Mavenで構築されJava EEにデプロイされた複数のWebアプリケーション(WAR)を持つプロジェクトに取り組んでいます。

これらのWARは、いくつかの一般的なビジネスJARS(休止状態からロードされるドメインオブジェクトを含むものなど)と、SpringやHibernateなどの他のフレームワークJARを共有します。

それらはSpringMVCを使用し、アプリケーションコンテキストはHibernateをロードします。各WARはサーブレットコンテナに独自のクラスパスを持っているため、Hibernateキャッシュ(EHcache)は共有されません。

私が欲しいのは、異なるWAR間でキャッシュと休止状態のセッションファクトリBean(および他の一般的なBean)を共有することです。これは、EAR内にこれらのWARを再パッケージ化することで可能になると思います。次に、これらのコモンズBeanを使用してSpring構成XMLを作成する必要があり、WARのSpring XMLでは、私が読んだものからSingletonBeanFactoryLocatorのようなものを使用します。

ここで私が求めているのは、これを行う簡単な方法があり、WARのPOMへの変更を最小限に抑えるかどうかです。

注:私はWAR、Tomcat、サーブレットに精通していますが、EARにはあまり精通していません。

前もって感謝します。

4

3 に答える 3

0

コヒーレントなクラスター化された L2 キャッシュを利用することを検討しましたか? 複数のアプリ サーバーを使用している場合は、それらがすべて同じ一貫したキャッシュを共有するため、より多くのメリットが得られる可能性があります。

于 2011-01-26T19:53:47.217 に答える
0

複数の war spring アプリケーションで共有親アプリケーション コンテキストを使用する

http://blog.springsource.org/2007/06/11/using-a-shared-parent-application-context-in-a-multi-war-spring-application/

于 2013-08-30T15:59:13.713 に答える
0

うーん...ほとんどのJava EEコンテナは、EARであってもWARに分離されたクラスローダーを使用するため(たとえJava EE仕様が単一のEARのモジュール間のクラスローディング分離を義務付けていなくても)、EARパッケージングにはあまり期待できません。特に、アプリケーションの移植性を維持したい場合 (つまり、アプリ サーバー固有の動作に依存したくない場合)。

ここで、複数のアプリケーション間でセッション ファクトリと 2 次キャッシュを共有することが本当に理にかなっている場合は、それらを 1 つの WAR にマージすることを検討してください。それがIMOの最も簡単な方法です。しかし、なぜそれらが分かれているのですか?アプリケーションが分離されている場合、ほとんどの場合、それらは別々のガバナンスを持っており、そのような場合にそれらを一緒に展開することが良い考えかどうかはわかりません.

また、WAR をマージできない場合は、使用しているコンテナーをお知らせください。

于 2010-02-22T15:27:53.297 に答える