2009-06-30 17 views
6

私は4つの異なるプロジェクトを持っており、Weblogicを使用してプロジェクトを展開しています。すべてのプロジェクトに共通のライブラリ(jarファイル)がいくつかあります。現在私のプロジェクトはそれぞれのlibというディレクトリを持ち、ほぼ同じライブラリセットを持っています。さて、このlibディレクトリをWARファイルの外に置いてアクセスすることは可能ですか?複数のJava Webプロジェクトに共通ライブラリを使用する方法

答えて

8

jarファイルをコンテナの「共有」フォルダに置くことの誘惑に抵抗します。 jarファイルを現在の場所に保つ方がよいでしょう。共有フォルダを使用することをお勧めしますが、将来は共有ライブラリが必要なアプリケーションを配備する必要がありますが、別のバージョンを配備する必要があります。

私はWebLogicに関する経験がありません。 Tomcatには、配備されたすべてのアプリケーションに共通のライブラリを持つ共有フォルダがあります。これを使うのは良い考えではありません。 WebLogicがアプリケーションのセットごとに共有フォルダを使用するように設定できる(すべてのデプロイされたアプリケーションではない)場合は、それを実行できます。

+1

良いアドバイス! jarファイルの余分なコピーを作成する際のオーバーヘッドはほとんどありませんが、同じ場所から2つのバージョンの共通ライブラリを切り取ったり、すべてのアプリケーションを同時に新しいバージョンにアップグレードしたりする必要があります。 –

+0

実際にプロジェクトをコンパイルした後、プロジェクトサイズは約1.5 mb(libsなし)、20 mb(libs) –

+0

です。開発マシンで共有フォルダを使用すると、より迅速に展開できます。プロダクション環境では、これはあまり重要ではないので、すべてのjarファイルが入った大きなWARファイルを好む。そうする場合は、テストを2回行う必要があります(小さなWARと大きなWARの両方)。 – kgiannakakis

0

まず、あなたのライブラリをすべて同じ場所に置き、ビルドプロセスで必要なものをインポートすることができます。

新しいWebLogic 10には、共有ライブラリを配置できる各ドメインにlibフォルダがあります。私はそれが前に可能だと思うWeblogic 10

+1

バージョン9には共有ライブラリのサポートがあります:http://e-docs.bea.com/wls/docs92/programming/libraries.html – McDowell

-1

私は現在別のアプローチを使用しています。

  1. 中央のリポジトリフォルダを作成し、すべての共通ライブラリをそこに配置します。
  2. 各プロジェクトでは、必要なすべてのライブラリへの参照を作成できます。 Subversionでは、それはあなたがちょうど中央のフォルダにコミットする必要があるので、ローカルの作業コピーは、外観がに更新され、更新され、それが自動的にすべてのプロジェクトに配布しています、externals

毎回で動作します。

3

これを行いますか?あなたが展開スペースに詰まっていない限り、私は(おそらく)それに反対するでしょう。

なぜですか?現時点では、これらのライブラリを実行する4つのソリューションがあります。 libのいずれかをアップグレードする必要がある場合(たとえば、バグを発見した場合、または新しい機能が必要な場合)、4つのソリューションすべてに対して互換性と機能性をテストする必要があります。それぞれのソリューションに独自のライブラリセットがある場合、それらはサンドボックス化されており、ステップで4つすべてを移動する必要はありません。

このすべては、ソリューションの回帰テストの容易性に関するヒンジです。あなたは同じlibsのセットを使用して実行するのが簡単な場合があります。

2

しないでください。

WARファイルのアイデアはすべて自己完結型のユニットであるということです。これにより、展開がずっと簡単になります。

他の人が指摘している可能性のあるバージョンの競合に加えて、jarファイルを/ sharedに入れると、クラスの可視性に非常にネストされた結果が生じる可能性があります。それらは別のクラスローダ上にあり、WARファイル内のクラスを見ることができません。 Class.forName()に依存するライブラリを使用すると(それには十分ですが)、これは非常に厄介なものになります。

OSGiまたはSpring DMで余分なディスクスペースとメモリを使用する余裕が本当にない場合は、彼らはこの問題を解決しましたが、複雑さが増します。

1

すべての共有jarファイルをweblogicのcommon \ libフォルダに置きます。 common \ libには、配備されたすべてのアプリケーションからアクセスできます。

0

自分のearファイルにjarファイルを入れ、共有ライブラリとして展開できます。

また、戦争を耳に入れ、共有JARをAPP-INF/libに追加することもできます。これはJ2EEのWeblogic拡張版なので、他のサーバーでは動作しません。

関連する問題