マネージャーから、Web アプリケーション開発作業用のアプリケーション サーバーを提案するように依頼されました。
Java J2EE 開発で Web アプリケーション開発用のアプリケーション サーバーを選択する前に、考慮すべき要素は何ですか?
1 つを選択し、将来、他のアプリケーション サーバーに変更したい場合、最小限の労力で変更できますか?
マネージャーから、Web アプリケーション開発作業用のアプリケーション サーバーを提案するように依頼されました。
Java J2EE 開発で Web アプリケーション開発用のアプリケーション サーバーを選択する前に、考慮すべき要素は何ですか?
1 つを選択し、将来、他のアプリケーション サーバーに変更したい場合、最小限の労力で変更できますか?
Apache TomcatとJettyは、最も人気のある 2 つの Web コンテナーです。Tomcat は Java サーブレット コンテナーのリファレンス実装であり、Jetty は少し高速で軽量です。私は個人的に Jetty を好みますが、どちらでも問題ありません。2 つの小さな比較は、ここで見つけることができます。
一般に、Web コンテナー間でのアプリケーションの移行は非常に簡単です。一部の構成を変更するだけで、ソース コードには何も変更する必要はありません (本格的なエンタープライズ アプリケーション サーバーでは常にそうとは限りません)。
適切に作成されたJavaWebアプリケーションは、場合によっては少し外部構成を使用して、任意のWebコンテナーにデプロイできます。
したがって、開発中に最適なものを選択してから、ターゲット展開サーバーでテストを行うことができます。
NetBeansの場合、Tomcatは同封されており、問題ありません。Eclipseにはまだ同封のWebコンテナがありませんが、Tomcatはサポートされています。
いずれにせよ、他の人が使用しているものを使用してください。そうすれば、彼らはあなたとあなたを助けることができます。
答えは、開発方法に基づいて、アプリケーション コンテナーの変更を多かれ少なかれ難しくすることができるということです。たとえば、Liferayポータルには、多くのアプリケーション コンテナー用のカスタム XML 構成ファイルが含まれているため、多くのコンテナーで使用できます。したがって、柔軟に切り替えることは確かに可能ですが、サーバー固有の構成ファイルをすべてやり直す必要があり、コンテナー固有の機能に依存することはできません。
場合によっては、コンテナ自体がそれを困難にします。たとえば、JBossクラスローダは、実際の J2EE および Java EE 標準をほとんどサポートしていない歴史があります。これにより、非標準の機能に頼りやすくなり、場合によっては標準の機能を使用することがほとんど不可能になります。
アプリケーション サーバーが標準に準拠していることを確認するだけでなく、上記のサーブレット コンテナーだけではなく、完全なアプリケーション サーバーが必要であることを確認する必要があります。アプリケーションには EJB が必要ですか、それともサーブレットだけが必要ですか? EJB 開発を行っていない場合、アプリケーション サーバーはやり過ぎです。
EJB 開発を行っている場合、またはサーブレット コンテナーが提供するものを超えた他の EE 機能を使用している場合は、標準への準拠と共に構成と管理の容易さを考慮してください。そうすれば、ニーズに合ったサーバーが見つかると思います。
純粋な開発目的のために、私はサーバーが欲しいです
だから、私の投票は Web アプリの Jetty に行きます。
Netbeans を使用している場合、NIO を使用する grizzly を介して優れたパフォーマンスを発揮する Glassfish も悪い選択ではありません。