我一直在阅读,启用autoDeploy选项将导致在放置新的war文件时热部署应用程序。如果我只想在一个应用程序中而不是在整个服务器中设置autoDeploy,我应该在<app>/META-INF/context.xml中启用它,对吗?

如果是这样,文件应该看起来像以下哪个?

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/TestApp">
    <autoDeploy>true</autoDeploy>
</Context>


要么

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/SRC_RichFaces" autoDeploy="true">
</Context>


当我尝试其中任何一个时,都会出现警告[SetContextPropertiesRule]{Context} Setting property 'autoDeploy' to 'true' did not find a matching property.

有什么建议吗?

更新

很抱歉给您带来不便,我误解了文档。我必须启用<Host>属性autoDeploy

所以我应该在context.xml中有类似

<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/TestApp"/>
<Host autoDeploy="true"/>


我对吗?

最佳答案

您无法做您想做的事。 autoDeploy只能按主机配置,不能按上下文配置。

您可以得到的最接近的结果是为主机的appBase启用autoDeploy并将这些应用程序放置在appBase和appBase之外的其他应用程序中要启用autoDeploy的位置。然后需要通过在$ CATALINA_BASE / Catalina / localhost下添加context.xml元素来部署这些元素。

例如。以这种方式部署我的应用程序,您将创建文件:
$ CATALINA_BASE / Catalina / localhost / myapp.xml
内容:

<Context docBase="/absolute/path/to/myapp.war" >

09-11 17:46