gpt4 book ai didi

java - 取消部署时删除的上下文

转载 作者:行者123 更新时间:2023-11-28 22:23:33 26 4
gpt4 key购买 nike

我在 tomcat 上部署了两个应用程序。对于每个应用程序,我在 $CATALINA_HOME/conf/Catalina/localhost 中定义了它们自己的上下文,其中定义了 JDBC 数据源。当我使用 ant 脚本上下文取消部署其中一个应用程序时,该应用程序的上下文被删除,因此在下次启动 tomcat 应用程序时无法部署,因为它没有定义 JDBC 连接。这个问题有什么解决办法吗?

最佳答案

我认为这是一个 Tomcat 错误。我提交了错误报告,但修复过程很复杂。

Tomcat 可以通过 3 种方式部署应用程序,

  1. 目录,例如 webapps/myapp。
  2. WAR,例如 webapps/myapp.war。
  3. 上下文片段,即您正在使用的片段。

如果您使用#3 但应用程序或 war 在 webapps 中,Tomcat 将与#1 或#2 混淆。当重新部署目录或 war 时,它应该删除上下文片段。

我的解决方法是,

  1. 如果您使用目录,请将它放在 APPBASE (webapps) 以外的地方。如果您使用 WAR,也将它放在其他地方并且不要爆炸它。
  2. 我们使用脚本部署我们的应用程序。在脚本中,每次取消部署应用程序后都会复制该片段。

这是 WAR 部署的示例片段,

<Context docBase="/anywhere/but/webapps/myapp.war"
swallowOutput="true" unpackWAR="false" />

请注意,并非每个应用程序都以解压模式运行。在解压模式下,您无法从 WAR 中将任何资源作为文件读取。

关于java - 取消部署时删除的上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2957255/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com