我在使用JRebel、Spring、JSF Mojarra 2.0.3和WebLogic 10.3时遇到了一些热重载Facelets文件的问题。
JRebel可以成功重载/WebContent下的普通Java类和js/css文件,但无法重载JSF的.xhtml文件。为了让服务器上的xhtml文件更新,需要进行完整的重新发布。
通过试错,我最终通过在web.xml中添加一些facelets参数并创建一个自定义的ResourceResolver来解决了这个问题,具体步骤可以参考这篇博客文章。
然而,我想知道为什么这样做可以解决问题,具体来说有以下几点疑问:
- 为什么需要一个自定义的ResourceResolver? - JRebel不应该通过监控包含xhtml文件的/WebContent来处理这个问题吗? - 我猜这可能与Facelets/JSF通过FacesServlet将xhtml编译为servlet有关,而JRebel无法检测到这一点。
JRebel可以成功重载/WebContent下的普通Java类和js/css文件,但无法重载JSF的.xhtml文件。为了让服务器上的xhtml文件更新,需要进行完整的重新发布。
通过试错,我最终通过在web.xml中添加一些facelets参数并创建一个自定义的ResourceResolver来解决了这个问题,具体步骤可以参考这篇博客文章。
然而,我想知道为什么这样做可以解决问题,具体来说有以下几点疑问:
- 为什么需要一个自定义的ResourceResolver? - JRebel不应该通过监控包含xhtml文件的/WebContent来处理这个问题吗? - 我猜这可能与Facelets/JSF通过FacesServlet将xhtml编译为servlet有关,而JRebel无法检测到这一点。
javax.faces.FACELETS_REFRESH_PERIOD
设置为0
,并将javax.faces.PROJECT_STAGE
设置为Development
,似乎无法在 JSF 2.0.4 和 WebLogic 10.3 上使用 JRebel 触发更新的模板。 - uggedaljavax.faces.FACELETS_REFRESH_PERIOD
对我来说完美地解决了问题。JBoss 4,JSF2。 - Magnilex