【问题标题】:IntelliJ hot swapping classes, but not JSF pagesIntelliJ 热交换类,但不是 JSF 页面
【发布时间】:2016-01-23 20:25:25
【问题描述】:

首先,我想说StackOverflow上有很多页面,我尝试了所有我发现的相关页面,但我做错了。

我已将 IntelliJ 服务器设置为:

  • 服务器 Tomcat 8
  • JDK 8u65
  • 马文
  • IntelliJ 14
  • 在我设置的运行/调试配置中
    • 虚拟机选项:
      • 更新操作:更新资源
      • 帧停用:更新类和资源
  • 发布前:Build xxx.war 爆炸
  • 部署选项卡设置为部署 xxx.war 已爆炸

如果我更改任何类的主体(例如返回值),一切都很好,并且它会像我期望的那样热交换该类。

不幸的是,当我更改一些 JSF 资源(在 webapp 目录下)时,没有任何反应。我查看了 Tomcat 临时目录,文件被移入其中,我只能看到旧的。

我也尝试将 webapp 目录添加为 IntelliJ 中的资源,但没有帮助。

我哪里出错了?

我的项目结构:

    src
    └── main
        ├── java
        |    └── *.java
        ├── resources
        |    └── spring-web-context.xml    
        └── webapp
             ├── template.xhtml
             ├── ...
             └── index.xhtml

【问题讨论】:

    标签: maven intellij-idea resources tomcat8 hotswap


    【解决方案1】:

    我决定重新安装 IntelliJ 并使用一些 JSF sample project

    我发现所描述的设置正常工作,所以我的工作项目或 IntelliJ 安装有问题

    【讨论】:

      【解决方案2】:

      为了使资源热交换工作,分解的工件必须用 resp 命名。扩展名(“战争”、“耳朵”)。

      例如,如果您的工件称为 ROOT.war,则分解后的工件也必须称为 ROOT.war,尽管第一个实际上是 zip,而第二个是文件夹。

      这适用于我的 JBoss 服务器。

      【讨论】:

      • 我试图将工件重命名为 web.war,但不幸的是它没有帮助。能否请您添加一些打印屏幕,以便我查看是否正确?
      【解决方案3】:

      我遇到了同样的问题,最终发现javax.faces.FACELETS_REFRESH_PERIOD被设置为-1。如this post 中所述,将其更改为0 有效。

      【讨论】:

        猜你喜欢
        • 2015-06-20
        • 2015-11-30
        • 2013-08-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-28
        • 2014-10-16
        相关资源
        最近更新 更多