删除了取消部署的上下文

时间:2010-06-02 11:36:03

标签: java deployment tomcat

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

1 个答案:

答案 0 :(得分:1)

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

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

  1. 目录,例如webapps / myapp。
  2. WAR,与webapps / myapp.war一样。
  3. 上下文片段,就是您正在使用的内容。
  4. 如果您使用#3但应用程序或战争是在webapps中,Tomcat将与#1或#2混淆。重新部署目录或war时,它假设删除上下文片段。

    我的解决方法是,

    1. 如果您使用目录,请将其放在除APPBASE(webapps)之外的其他位置。如果您使用WAR,请将其放在其他地方,不要将其爆炸。
    2. 我们使用脚本部署我们的应用程序。在脚本中,每次取消部署应用程序后都会复制片段。
    3. 以下是WAR部署的示例片段

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

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