tomcat在启动时仅部署管理器



我有一个奇怪的问题。我公司的安全部门希望每个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>元素,当然,确保pathdocBase属性也存在,正如文档所指定的那样。在你的情况下,我相信它会是:

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

您可以从这个链接获得帮助,我认为这是您正在寻找的解决方案。

相关内容

  • 没有找到相关文章

最新更新