2011-07-24 16 views
4

サーブレットコンテナとしてTomcat 7を使用しています.2つのwarファイル(Eclipseで2つのプロジェクト)があります。問題は、展開された両方のwarファイルの間でクラスを共有したいということです。 しかし、これは私が知る限りTomcat/Servletの仕様では不可能です。両方の配備されたWebアプリケーションは、互いに分離されているようです。Tomcatのwarファイル間でJavaクラスを共有しますか?

私は耳のファイルを展開することができるアプリケーションサーバーとしてJBossから初心者です(私は複数のwarファイルを置くことができます)ので、それらの間でクラスを共有できますか?

私の質問:私の声明に同意しますか?JBossでこれを行うことは可能ですか?そして、私は変更を加えなければならないのでしょうか、あるいは耳のファイルに簡単に入れてJBossでそれを展開すればいいのですか?

最高のお付き合い

+0

私は、JBossアプリケーションサーバとの初心者です。だから、JBossで可能かどうかは分かりません。しかし、あなたはtomcatで共有jarを持つことができます。 catalina.propertiesの "shared.loader"プロパティを設定する必要があります。しかし、はい、あなたはtomcatの2つの異なる戦争からクラスを共有することはできません。 – Kowser

+0

しかし、JBossでは2つの異なる戦争のクラスを共有できますか? – Tim

+0

うん、私の答えを見てください。 – home

答えて

3

2つの簡単なオプションがあります。どちらも、共有クラスを別のプロジェクト(JAR)で定義する必要があります。SHAREDとしましょう。 Tomcatのlibフォルダに

  1. コピーSHARED.jar、あなたが行われている:それは、展開に来るとき今、あなたは2つのオプションがあります。
  2. SHARED.jar WebAppでは、WARをeclipseからエクスポートするときにツールがJARを作成し、WebAppのWEB-INF/libフォルダに配置し、WARを作成します(スクリーンショットを参照)。

あなたはオプション#1で行く場合は、同じクラスがWebAppのクラスローダ(Tomcatのシステムクラスローダ)の間で共有されていることを理解することが重要ですので、あなたが間で状態を共有したい場合にのみ、このオプションを指定していいよ異なるWebアプリケーション(例えば、シングルトン)。

ところで:スクリーンショットは、Eclipseの3.6 + WTPを使用して作られて...

enter image description here

+0

うん、確かに...あなたはJBoss用ではなく、Tomcat向けのソリューションが必要ですよね? – home

+0

Tomcatで可能な場合は、これで問題ありません。しかし、私は2つの戦争がある場合、私はJBossを使用する必要があり、それは動作しますか? JBossのような完全なアプリケーションサーバーとTomcatのようなサーブレットコンテナとの相違点は、この問題戦争<->と似ています。私は耳のファイルでいくつかの瓶や戦争をすることができると思っていました。彼らはJBossで大きなアプリケーションとして動作し、Tomcatではこれを行うことはできません。 – Tim

+0

Tomcatでは、いくつかのWARを展開する必要があります。これは完全にサポートされているので、1つのTomcatインスタンス(JVM)で10個のWARを実行できます。 – home

関連する問題