私はエンタープライズJavaと、JBossを使用するという言及に従っている本を調べ始めています。NetbeansにはGlassfishが付属しています。私は過去にTomcatを使用しました。
これら3つのプログラムの違いは何ですか?
私はエンタープライズJavaと、JBossを使用するという言及に従っている本を調べ始めています。NetbeansにはGlassfishが付属しています。私は過去にTomcatを使用しました。
これら3つのプログラムの違いは何ですか?
回答:
Tomcatは単なるサーブレットコンテナーです。つまり、サーブレットとJSP仕様のみを実装しています。GlassfishとJBossは完全なJava EEサーバー(EJB、JMSなどを含む)であり、Glassfishは最新のJava EE 6スタックのリファレンス実装ですが、2010年のJBossはまだ完全にサポートしていません。
Tomcatは単なるHTTPサーバーおよびJavaサーブレットコンテナーです。JBossとGlassFishは、EJBコンテナとそのスタックの他のすべての機能を含む本格的なJava EEアプリケーションサーバーです。一方、Tomcatの方がメモリフットプリントが軽い(約60〜70 MB)のに対し、これらのJava EEサーバーは数百メガの重量があります。Tomcatは、単純なWebアプリケーション、または完全なJava EEサーバーを必要としないSpringなどのフレームワークを使用するアプリケーションで非常に人気があります。可動部分が少ないため、Tomcatサーバーの管理は間違いなく簡単です。
ただし、完全なJava EEスタック(または、Tomcatに簡単にボルトオンできる少なくとももっと多くのピース)を必要とするアプリケーションの場合... JBossとGlassFishは、最も人気のあるオープンソース製品の2つです(3番目はApache Geronimoです) 、IBM WebSphereの無料バージョンがその上に構築されています)。JBossには、より大きくより深いユーザーコミュニティと、より成熟したコードベースがあります。ただし、JBossは現在のJava EE仕様の実装においてGlassFishに大幅に遅れています。また、GUIベースの管理システムを好む人のために... GlassFishの管理コンソールは非常に洗練されていますが、JBossでのほとんどの管理はコマンドラインとテキストエディターで行われます。GlassFishはSun / Oracleから直接提供され、提供できるすべての利点があります。JBossはSun / Oracleの管理下にはありませんが、その利点はすべてあります。
Java EEエンタープライズアプリケーションにはGlassFishを使用する必要があります。考慮すべき事項:
Webサーバーの手段:(通常はブラウザからの)取り扱いHTTPリクエスト。
A サーブレットコンテナ(例えばTomcatの)意味:それはサーブレット&JSPを処理することができます。
アンアプリケーションサーバー(例えばGlassFishの)手段:それは、Java EEアプリケーション(通常はサーブレット/ JSPおよびEJBの両方)を管理することができます*。
Tomcat -Apacheコミュニティによって実行されます-オープンソースで、2つのフレーバーがあります。
商用サポートはありません(コミュニティサポートのみ)
JBoss -Run by RedHatこれはJavaEEのフルスタックサポートであり、認定済みのJava EEコンテナです。これには、内部的にWebコンテナとしてTomcatが含まれます。これには2つのフレーバーもあります。
Glassfish -Run by Oracleこれもフルスタック認定のJava EEコンテナです。これには独自のWebコンテナがあります(Tomcatではありません)。これはOracle自体からのものであるため、新しい仕様はすべてGlassfishで最初にテストおよび実装されます。したがって、常に最新の仕様をサポートします。私はそのサポートモデルを知りません。
jbossとglassfishには(tomcatのような)サーブレットコンテナが含まれていますが、2つのアプリケーションサーバー(jbossとglassfish)もBeanコンテナを提供しています(私が想像している他のいくつかのものもあります)。
JBossとGlassfishは基本的に完全なJava EEアプリケーションサーバーですが、Tomcatはサーブレットコンテナーにすぎません。TomcatだけでなくJettyに関して、JBoss、Glassfish、さらにはWebSphere、WebLogicなどの主な違いは、完全なアプリサーバーが提供する機能にありました。フルスタックのJava EEアプリサーバーがある場合は、選択したベンダーのすべての実装のメリットを享受できます。もちろん、EJB、JTA、CDI(JAVA EE 6 +)、JPA、JSF、JSP /サーブレットのメリットも享受できます等々。一方、Tomcatを使用すると、JSP /サーブレットのみを利用できます。ただし、SpringやGuiceなどの高度なフレームワークを使用すると、フルスタックアプリケーションサーバーを使用することの主な利点の多くは軽減され、このフレームワークの1つをSpringエコシステムで使用すると想定すると、
これらの回答を読んだときに、Tomcatを使用するのは少し残念なようです。ただし、ほとんど言及していないのは、tomcatを使用して同一またはほぼ同一のユースケースに到達できることですが、必要なライブラリを(Mavenまたは使用するインクルードシステムを介して)追加する必要があります。
私は、非常に小さな構成作業で、JPA、EJBでTomcatを実行しています。
JBossとTomcatはどちらもJavaサーブレットアプリケーションサーバーですが、JBossはそれだけではありません。2つの主な違いは、JBossがエンタープライズJavaBeanやエンタープライズJavaアプリケーションで作業する開発者に役立つ他の多くのテクノロジーを含む完全なJava Enterprise Edition(Java EE)スタックを提供することです。
Tomcatははるかに制限されています。それを考える1つの方法は、JBossがサーブレットコンテナーとWebサーバーを含むJava EEスタックであるのに対し、Tomcatは大部分がサーブレットコンテナーとWebサーバーであるということです。