我一直在阅读,启用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" >