使用 Intellij 10.X 和 tomcat 6.X 进行修改后热部署 JSP

2022-09-01 19:46:48

我有一个Hello-World应用程序,其中包含一个java类和一个jsp。JSP 打印出一些嵌入在 JSP 和 java 类中的文本(它打印出两件事)

我按照此处的说明创建并部署了我的应用程序,它(大部分)可以正常工作!我能够调用JSP,它正确地显示页面。我还能够在按下Intellij重新加载按钮后对java类中的更改进行热插拔。

问题:如果我更改 JSP,它不会反映在浏览器中。

我已验证以下内容:

  • Tomcat/conf 目录中的 web.xml 不会覆盖“开发”值。默认值为 true。
  • context.xml在 HelloWorld\web\META-INF\context.xml 和 Tomcat\conf\context 中.xml具有 reloadable=true
  • 将 JSP 从 C:\code\HelloWorld\web\index.jsp 复制到 C:\code\HelloWorld\out\artifacts\HelloWorld_war_exploded\index.jsp任何更改立即
  • 它不是浏览器缓存问题

有什么想法吗?


答案 1

当我回答这个问题时,IntelliJ IDEA的版本是13.0.2。自从提出这个问题以来,选项略有不同。简而言之,通过项目的“运行/调试配置”面板:

  1. 确保您的项目设置为“战争爆发”(通过“部署”)
  2. 在“服务器”选项卡上,将“帧停用时”设置为“更新类和资源”

按照顺序执行这两个步骤,当IDEA失去焦点时(即当您将焦点更改为Web浏览器时),将导致项目被“热交换”。

完整的说明可在 http://www.jetbrains.com/help/idea/2016.1/updating-applications-on-application-servers.html?search=application%20servers


答案 2

我正在使用Intellij IDEA 10.0.3并遇到了同样的问题。我通过检查“运行/调试配置”部分下的tomcat服务器设置中的设置 - “帧停用时更新资源”来解决该问题。希望这有帮助。