没有servlet就不能自动启动webapp

时间:2013-01-30 10:47:48

标签: spring apache tomcat servlets

我在Apache Tomcat(7.0.x)中部署了一个简单的webapp,它使用ContextLoaderListener而不是Servlet进行自举。我希望这个webapp不会在Tomcat服务器本身启动时自动启动,而只是通过Tomcat管理器手动启动/停止。我在网上看到的示例显示了如何使用以下web.xml中的servlet代码轻松完成此操作:

<servlet><load-on-startup>0</load-on-startup></servlet>

但是在使用ContextLoaderListener时没有可用的示例。这有可能吗?或者我是否需要包含一个servlet,以便在Tomcat服务器本身启动时将webapp配置为不自动启动?

提前致谢, PM。

2 个答案:

答案 0 :(得分:1)

我认为您无法在web.xml中执行此操作。 load-on-startup用于告诉webapp在启动webapp时启动servlet。 Web应用程序通常由多个servlet组成。

如果您想确保在启动时未加载webapp,而是使用Tomcat管理器启动它,我建议您在deployOnStartup="false"容器中<Host>设置settings.xml 。有关详细信息,请参阅Tomcat 7文档页面:

http://tomcat.apache.org/tomcat-7.0-doc/config/host.html

答案 1 :(得分:1)

您应该阅读最近关于Tomcat用户列表的讨论,我相信这些讨论可以回答您的确切问题:http://markmail.org/message/5hp3dohwj3vncg4c

最重要的是,您可以在启动时仅启动Manager webapp,但对重启后发生的情况有一些限制。马克·托马斯的回复是最有用的。