2012-04-04 111 views
2

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

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

<?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.

有什么建议?

UPDATE

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

所以我应该在context.xml中

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

是吗?

+0

我不知道,如果'autoDeploy'可以设置应用程序。它通常设置在服务器级别,指示tomcat查找基础位置中war文件的更改/添加。如果在服务器级别禁用'autoDeploy',则tomcat甚至不会知道具有'autodeploy = true'的context.xml的web应用程序已被放置在基本位置。顺便说一下,context.xml的应用程序特定位置是'/ META-INF/context.xml' – srkavin 2012-04-04 19:09:21

回答

7

你不能做你想做的事情。 autoDeploy只能由每个主机配置,而不是按每个上下文配置。

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

例如,部署我的应用程序这种方式你会创建文件:
$ CATALINA_BASE /卡塔利娜/本地主机/ myapp.xml
与内容:

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

谢谢,帮助我! – BRabbit27 2012-04-09 22:44:08

相关问题