0

在不同的论坛[1] [2] [3]上有很多关于这个主题的问题,但似乎没有一个提供明确的答案。我已经尝试了各种帖子中建议的不同组合,但我还没有成功。

我的目标是使编译的源代码在独立的 tomcat (8) 中可重新加载 - 就像嵌入式 tomcat 在例如 spring-boot 或 Grails 中重新加载新编译的源一样。我需要遵守一些限制条件:

  • 没有 Grails 或 Spring-boot 可用
  • 没有可用的 Maven 或 Gradle
  • tomcat 应该从外部位置读取分解的战争文件

为了简单起见,我使用了一个非常简单的 JEE 应用程序和 Spring MVC 作为 POC,然后再进行实际操作。设置如下(目前):

  • 爆炸战争构建到目录中target/exploded
  • Tomcat 使用默认设置进行设置,但Context.xml相关的两行WatchedResource已被删除。上下文未设置为reloadable="true"
  • Tomcat 服务器在 IntelliJ Idea (2016.3) 中运行,如下所示: Tomcat 运行配置 - 部署选项卡 “exploded”文件夹指向上述目标。而“服务器”选项卡是这样的: 在此处输入图像描述

服务器启动,应用程序运行良好。然后我尝试更改一些代码,保存它,并构建一个新的分解战争文件。我可以看到类文件发生了变化——但在 tomcat 中没有重新加载任何内容。

有人可以详细说明吗?这种方法甚至可能 - 与许多帖子所暗示的相反?在例如 Grails 中的嵌入式 tomcat 中怎么可能?

4

0 回答 0