如何只部署tomcat中的特定项目?
How to deploy only a specific project in tomcat?
我通过在自定义文件夹中的 \conf\Catalina\localhost\ 和 .war 文件中添加上下文文件,在同一个 tomcat 服务器中设置了很多项目。实际上一切正常,但我必须同时 运行 所有项目。或者通过从 localhost 目录中删除所有上下文(并只添加我需要的一个),我可以只启动需要的一个。有没有办法将所有项目保存在同一个文件夹中,并告诉 tomcat 要加载哪个?
当从主机的 xmlBase
目录(在您的情况下为 \conf\Catalina\localhost
)自动部署应用程序时 Tomcat 忽略 所有没有 .xml
扩展名。因此,您可以重命名所有文件以防止它们被部署。
但是,如果您想要部署所有项目,但不启动它们,您可以像 this question 中一样通过将 startChildren="false"
添加到您的主机来继续。
如果您选择第二种解决方案,启动您的应用程序会变得棘手:您需要在 server.xml
文件中配置 Tomcat 管理器,以便它随系统一起启动,然后您可以启动其他应用程序通过这。只需将 webapps/manager/META-INF/context.xml
的内容复制到 <Host>
元素中并添加 path
和 docBase
属性:
<Host>
<Context path="/manager" docBase="${catalina.home}/webapps/manager" antiResourceLocking="false" privileged="true" >
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
sameSiteCookies="strict" />
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter$LruCache(?:$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
...
</Host>
我通过在自定义文件夹中的 \conf\Catalina\localhost\ 和 .war 文件中添加上下文文件,在同一个 tomcat 服务器中设置了很多项目。实际上一切正常,但我必须同时 运行 所有项目。或者通过从 localhost 目录中删除所有上下文(并只添加我需要的一个),我可以只启动需要的一个。有没有办法将所有项目保存在同一个文件夹中,并告诉 tomcat 要加载哪个?
当从主机的 xmlBase
目录(在您的情况下为 \conf\Catalina\localhost
)自动部署应用程序时 Tomcat 忽略 所有没有 .xml
扩展名。因此,您可以重命名所有文件以防止它们被部署。
但是,如果您想要部署所有项目,但不启动它们,您可以像 this question 中一样通过将 startChildren="false"
添加到您的主机来继续。
如果您选择第二种解决方案,启动您的应用程序会变得棘手:您需要在 server.xml
文件中配置 Tomcat 管理器,以便它随系统一起启动,然后您可以启动其他应用程序通过这。只需将 webapps/manager/META-INF/context.xml
的内容复制到 <Host>
元素中并添加 path
和 docBase
属性:
<Host>
<Context path="/manager" docBase="${catalina.home}/webapps/manager" antiResourceLocking="false" privileged="true" >
<CookieProcessor className="org.apache.tomcat.util.http.Rfc6265CookieProcessor"
sameSiteCookies="strict" />
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter$LruCache(?:$1)?|java\.util\.(?:Linked)?HashMap"/>
</Context>
...
</Host>