2009-08-18 17 views
1

Java EEアプリケーションサーバー(現在はJBossを使用していますが、近い将来GlassFishに切り替える)のWebアプリケーションを開発するプログラマーのチームと協力しています。私たちは、アプリケーションで使用するライブラリをJava EEサーバー自体にインストールするのか、これらのライブラリをサーバーに展開するすべての.warファイルでパッケージ化するのかを考えていました。Java EEアプリケーションサーバーライブラリ

ライブラリーをサーバー上の共通の場所にインストールすることの明らかな利点は、より軽量のアプリケーションパッケージですが、一方で、私たちが望むときに問題が発生しないようにしたいと考えています。これらのインストールされたライブラリの新しいバージョンを使用してください。

私はこの質問が実際にの回答の回答を持っていないことを認識していますが、これを行うことについて間違いなく正しい方法があるように感じます。

+1

あなたの質問は質問として表現したいかもしれません。 :-) –

答えて

4

通常、EAR/WARにアプリケーション固有のライブラリを保管してください。より多くのライブラリとアプリケーションを展開すると、別のアプリケーションとの互換性の問題が発生する場所があります。 (コモンズロギングでさえ私に問題を引き起こします。)

私は、アプリケーションサーバはできるだけ痩せていて、意味があり、クラスパスが汚染されていないと思っています。あなたの耳にあなたのライブラリを保持します。

+0

+1、私たちは私たちのライブラリをWAR/EARでパッケージ化しています。 – Powerlord

+0

それは、入力のおかげで、多くの意味を作る! – TimmyJ

1

ダーツコーダーにダースコーダーをプレイするには、耳で梱包することは間違いありませんが、耳/戦争を再構築して展開するたびに時間がかかります。 数に応じて、これは時間がたつにつれて増えるので、開発のためにコンテナに入れる方が良いかもしれません。 (特にPermGenの再デプロイメントの問題を伴います...) 私は、プロダクションではアプリケーションにバンドルする必要があることに同意します。

0

EAR/WARに必要なすべてのJARを常にパッケージ化します。サイズやビルド時間を気にしないでください。私は30 Megsと70 MegsのEARで作業しましたが、大きな問題ではありませんでした。新しいアプリケーションサーバーへのデプロイも簡単です。アプリケーションサーバーがあるボックス(常にftp/copy EAR/WAR)から展開します。

ファンキーなツールを使用した場合、絶対に必要なものだけを含むことで、おそらくEAR/WARのサイズを大幅に減らすことができます。

私の経験では、アプリケーションサーバーが適切に構成されていることが少ないほど良いでしょう。