我有一个奇怪的问题。我公司的安全部门希望每个tomcat都遵守以下配置参数:
autoDeploy="false"
deployOnStartup="false"
当我配置上述参数时,启动时不会部署任何web应用程序(包括manager应用程序),并且我无法通过manager应用程序部署应用程序。。。
我可以在server.xml或类似的文件中定义管理器应用程序的部署吗?我只想在启动时部署管理器应用程序。
编辑:这是我的${CATALINA_HOME}/conf/server.xml
...
<Service name="Catalina">
...
<Engine name="Catalina" defaultHost="localhost">
...
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="false"
deployOnStartup="false"
xmlValidation="false" xmlNamespaceAware="false"
deployXml="false">
...
这是我的${CATALINA_HOME}/webapps/manager/META-INF/context.xml
<Context path="/manager"
docBase="/usr/share/tomcat6/webapps/manager"
debug="0"
privileged="true"
autoDeploy="true"
deployOnStartup="true">
<ResourceLink name="users"
global="UserDatabase"
type="org.apache.catalina.UserDatabase"/>
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127.0.0.1"/>
</Context>
欢迎
Goetz
来自Apache 6文档:https://tomcat.apache.org/tomcat-6.0-doc/config/context.html在Context的"属性"部分,path属性的文档指定:
只有在server.xml中静态定义上下文时才能使用此属性。在所有其他情况下,路径将根据.xml上下文文件或docBase所用的文件名推断。
即使在server.xml中静态定义Context,也不能设置此属性,除非docBase不在Host的appBase下,或者deployOnStartup和autoDeploy都为false。如果不遵守此规则,可能会导致双重部署。
Tomcat7中也存在相同的文档,所以我在Tomcat7上尝试了以下操作,并且只部署了管理器应用程序。
<Host appBase="webapps" autoDeploy="false" deployOnStartup="false" name="localhost" unpackWARs="true">
<Context docBase="manager"
path="/manager"
antiResourceLocking="false" privileged="true"
/>
</Host>
基本上,我所做的是复制webapps/manager/META-INF/context.xml的内容,并将它们粘贴到<主机>erver.xml的strong>元素,当然,确保path和docBase属性也存在,正如文档所指定的那样。在你的情况下,我相信它会是:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="false"
deployOnStartup="false"
xmlValidation="false" xmlNamespaceAware="false"
deployXml="false">
<Context path="/manager"
docBase="/usr/share/tomcat6/webapps/manager"
debug="0"
privileged="true">
<ResourceLink name="users"
global="UserDatabase"
type="org.apache.catalina.UserDatabase"/>
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127.0.0.1"/>
</Context>
</Host>
您可以从这个链接获得帮助,我认为这是您正在寻找的解决方案。