【问题标题】:Remote deploy to tomcat远程部署到tomcat
【发布时间】:2016-02-08 10:48:55
【问题描述】:

我想使用 maven 将应用程序 (war) 部署到远程 tomcat (v7) 中,保留现有的 context.xml - 或者也可以将 context.xml 与 war 一起部署。 我认为这是一个经典问题,如果您想通过管理器重新部署到 tomcat,它会按顺序执行取消部署和部署 - 取消部署 context.xml 作为副作用,然后应用程序无法启动。

我已经尝试过的:

  • 不同设置的货物 - 没有变化
  • 'autoDeploy' = false - 在 tomcat 7 下不起作用
  • 限制 tomcat 写入自己的配置目录 - 抛出错误消息并且 tomcat 7 无法启动
  • 将每个上下文信息放入一个 context.xml.default - 不会删除上下文,但不幸的是,我们有一些应用程序在不同的上下文中使用相同的键 不同的值:-)
  • 将上下文配置放入备用路径 - 在 ${catalina.base} 之外 - 无法使其工作
  • 构建一个容器 (docker) 并重新部署它 - 这是可行的,但目前这不是一个选项

我正在考虑编写一个简单的 ssh 脚本(stop-tomcat、copy-war、start-tomcat)或替代管理器脚本,但首先我想在重新发明轮子之前问你。 我看到了使用'tomcat7-maven-plugin'的解决方案,但听说它只适用于本地tomcat。 我不坚持要获得一个成熟的 maven 解决方案:如果您建议使用带有简单 REST 调用的管理器的解决方案,我也可以在 maven 中实现。

所以问题分为三种可能的解决方案(在tomcat7下):

  • 通过取消部署保留 context.xml
  • 使用 war 部署 context.xml
  • 在不取消部署的情况下重新部署应用程序

你知道一个可靠的解决方案吗?

【问题讨论】:

    标签: tomcat web-deployment tomcat-manager


    【解决方案1】:

    最后,我提出了一个运行脚本的不是很好但运行良好的解决方案: - 登录到tomcat机器 - 停止实例 - 清理 webapps 目录 - 将战争下载到 webapps 目录 - 启动实例

    再次重申:tomcat 6 和 8 中不存在该问题 :-)

    【讨论】:

      猜你喜欢
      • 2011-03-04
      • 2011-07-26
      • 2013-06-19
      • 2019-04-28
      • 1970-01-01
      • 1970-01-01
      • 2010-12-18
      • 1970-01-01
      相关资源
      最近更新 更多