2009-06-18 49 views
3

我对理解tomcat实际运行的位置感到困惑。它是在执行servlet的JVM内部执行的。或者它拥有自己的虚拟机来执行servlet或JSP。Tomcat和VM

在此先感谢。

回答

13

Tomcat将在JVM中运行,servlet在Tomcat进程内执行(在同一个JVM中)。

运行catalina.sh(或.bat)将启动一个用于运行Tomcat的新JVM。如果需要将Web服务器作为更大应用程序的一部分,则可以在现有JVM中以编程方式加载/运行Tomcat。

0

Tomcat和它的servlet都在JVM中运行。

3

Java提供JVM来运行任何Java应用程序。

Tomcat实质上是一个Java程序,它实现了Servlet容器规范并充当Servlet容器。

这也意味着您需要(至少)Java JRE来运行Tomcat。

3

这是一个令人困惑的问题,因为单独的JVM的“外观”有时会与不同的类加载器实例混淆。您可以使用独立的类加载器 - 这就是为什么您可以使用不同版本的类似log4J的两个WAR并且都很好,所以Tomcat和您的应用程序(WAR或servlet)共享相同的JVM。 Here's an article from O'Reilly about the class loader