Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使tomcat应用程序在默认情况下停止_Java_Tomcat - Fatal编程技术网

Java 使tomcat应用程序在默认情况下停止

Java 使tomcat应用程序在默认情况下停止,java,tomcat,Java,Tomcat,使用Tomcat Web应用程序管理器,我可以停止、启动、重新加载和取消部署特定的应用程序。我以这种方式停止的任何应用程序,都会在Tomcat自身重新启动时自动重新启动 如何将特定应用程序配置为在Tomcat启动时不启动,而仅在我自己通过Web application Manager启动时启动?您需要在conf/server.xml中的元素上设置deployOnStartup=“false”。请注意,这将导致管理器应用程序在启动时也不会部署。对此,您有几种选择: 在conf/server.xml

使用Tomcat Web应用程序管理器,我可以停止、启动、重新加载和取消部署特定的应用程序。我以这种方式停止的任何应用程序,都会在Tomcat自身重新启动时自动重新启动


如何将特定应用程序配置为在Tomcat启动时不启动,而仅在我自己通过Web application Manager启动时启动?

您需要在
conf/server.xml
中的
元素上设置
deployOnStartup=“false”
。请注意,这将导致
管理器
应用程序在启动时也不会部署。对此,您有几种选择:

  • conf/server.xml
  • 将单独的
    deployOnStartup=“true”
    一起使用,并将管理器部署到该主机

  • 这是一个很好的资源,可以查看哪些事件和配置组合将显示哪些行为。

    server.xml的
    Host
    元素中有
    deployIgnore
    属性

    它接受不部署上下文的regexp

    参考:

    一个正则表达式,定义在自动部署和 已设置deployOnStartup。这允许您将配置保存在 例如,版本控制系统,而不是部署.svn或CVS 恰好位于appBase中的文件夹

    此正则表达式是相对于appBase的。它也被锚定, 这意味着对整个文件/目录名执行匹配。 因此,foo只匹配名为foo的文件或目录,而不匹配foo.war, foobar或myfooapp。要匹配任何与“foo”匹配的内容,可以使用 .福

    还有一些解释:

    主机的appBase目录中的任何web应用程序存档文件 作为上下文XML的结果,尚未部署 描述符,没有同名的对应目录 (不带“.war”扩展名),并且不被 下一步将部署。使用的上下文路径将是斜杠字符 (“/”)后跟web应用程序存档名称减去“.war” 分机。此规则的一个例外是web应用程序 将部署名为“ROOT.war”的存档,其上下文路径为/。 可以使用#定义多级上下文,例如使用名为 foo#bar.war,用于/foo/bar的上下文路径

    更新

    为了证明我的答案,我试着回答下面的评论

    刚刚下载了Tomcat8的最新版本(8.0.30)。 它确实附带了(除其他外)web应用程序“示例”

    无需任何修改即可启动(摘自catalina.out):

    从修改过的server.xml开始,剪下:

    <Host name="localhost"  appBase="webapps" deployIgnore="^examples$" unpackWARs="true" autoDeploy="true">
    
    
    
    防止部署应用程序“示例”

    所以在你的情况下,试试这个

    <Host name="localhost"  appBase="webapps" deployIgnore="^welcome$" unpackWARs="true" autoDeploy="true">
    
    
    
    如果webapps中已经设置了目录结构,则此解决方案不起作用,是吗?例如,我有一个webapps/welcome文件夹,但我不希望tomcat附带的欢迎应用程序在tomcat重新启动时自动启动。将server.xml修改为include:并不会阻止welcome应用程序的启动。谢谢rkosegi,也许它在tomcat 7上有所不同,但对我来说,这种技术不起作用:信息:web应用程序存档的部署C:\Program Files\Apache软件基金会\Tomcat 7.0\webapps\welcome.war已于469年完成ms@rgh:我刚才在Windows上试用了Tomcat 7.0.64。它按预期工作。试试这个“^welcome.*”啊!真管用!现在的问题是,欢迎应用程序根本没有出现在manager应用程序中,所以我无法在需要时启动它。嗨,大约一年后我看到了这个问题/答案。就像rgh的最后一条评论(2016年2月2日)一样,我可以禁止tomcat自动启动我的web应用程序(而其他人仍在启动,包括manager),但我的经理现在正在显示该web应用程序。您找到解决方案了吗?“默认停止”和“默认未部署”是两件不同的事情。这两个未勾选的答案似乎回答错误,对吗?任何使用conf/server.xmlI配置manager的示例都可以向您展示如何执行此操作,但(a)这很容易理解,(b)不建议将
    放入
    conf/server.xml
    ,所以不要这样做。如果您不希望服务器在启动时启动您的应用程序,那么首先为什么它会在那里?
    <Host name="localhost"  appBase="webapps" deployIgnore="^welcome$" unpackWARs="true" autoDeploy="true">