2009-06-18 9 views
3

実際にはTomcatがどこで実行されているのか分かりません。サーブレットを実行するJVMの内部で実行されますか。あるいは、サーブレットまたはJSPを実行する際に、それ自身のVMを持っています。Tomcat and VM

ありがとうございます。

答えて

13

TomcatはJVM内で実行され、サーブレットは(同じJVM内の)Tomcatプロセス内で実行されます。

catalina.sh(または.bat)を実行すると、Tomcat用の新しいJVMが起動します。より大きなアプリケーションの一部としてWebサーバーが必要な場合は、既存のJVM内でプログラム的にTomcatをロード/実行できます。

0

TomcatとそのサーブレットはすべてJVM内で実行されます。

3

Javaは、任意のJavaアプリケーションを実行するためのJVMを提供します。

Tomcatは本質的にサーブレットコンテナ仕様を実装し、サーブレットコンテナとして機能するJavaプログラムです。

これは、Tomcatを実行するためにJavaのJREが(少なくとも)必要であることを意味します。

3

別のJVMの「外観」が異なるクラスローダーのインスタンスと混同されることがあるため、これは混乱する問題です。

Tomcatとアプリケーション(WARまたはサーブレット)は同じJVMを共有しますが、独立したクラスローダを使用しています。つまり、log4Jなどの異なるバージョンを使用して2つのWARを持つことができます。 Here's an article from O'Reilly about the class loader