実際にはTomcatがどこで実行されているのか分かりません。サーブレットを実行するJVMの内部で実行されますか。あるいは、サーブレットまたはJSPを実行する際に、それ自身のVMを持っています。Tomcat and VM
ありがとうございます。
実際にはTomcatがどこで実行されているのか分かりません。サーブレットを実行するJVMの内部で実行されますか。あるいは、サーブレットまたはJSPを実行する際に、それ自身のVMを持っています。Tomcat and VM
ありがとうございます。
TomcatはJVM内で実行され、サーブレットは(同じJVM内の)Tomcatプロセス内で実行されます。
catalina.sh(または.bat)を実行すると、Tomcat用の新しいJVMが起動します。より大きなアプリケーションの一部としてWebサーバーが必要な場合は、既存のJVM内でプログラム的にTomcatをロード/実行できます。
TomcatとそのサーブレットはすべてJVM内で実行されます。
Javaは、任意のJavaアプリケーションを実行するためのJVMを提供します。
Tomcatは本質的にサーブレットコンテナ仕様を実装し、サーブレットコンテナとして機能するJavaプログラムです。
これは、Tomcatを実行するためにJavaのJREが(少なくとも)必要であることを意味します。
別のJVMの「外観」が異なるクラスローダーのインスタンスと混同されることがあるため、これは混乱する問題です。
Tomcatとアプリケーション(WARまたはサーブレット)は同じJVMを共有しますが、独立したクラスローダを使用しています。つまり、log4Jなどの異なるバージョンを使用して2つのWARを持つことができます。 Here's an article from O'Reilly about the class loader。