1

我在 Eclipse 中有一个 JSF 项目。现在每次更改.xhtml文件时,我都必须停止 Tomcat 服务器,然后再次启动 Tomcat 服务器。有没有其他方法可以让我在每次进行更改时无需重新启动服务器就可以持续构建和测试我的应用程序?

4

2 回答 2

1

当您需要开发 JSF 项目时,您至少需要进行两项更改:

  1. 告诉 Eclipse 通过更改 Tomcat 设置自动发布更改,如下所示(双击服务器视图中的 Tomcat 服务器条目以获取此屏幕):

    在此处输入图像描述

    它即默认为“从不自动发布”。


  2. 通过添加以下内容来告诉 JSF webapp 当前处于开发模式web.xml

    <context-param>
        <param-name>javax.faces.PROJECT_STAGE</param-name>
        <param-value>Development</param-value>
    </context-param>
    

    这将改变一些内部工作以使开发人员更容易,例如禁用 Facelet 缓存和重新加载资源。在构建生产版本时不要忘记删除它,因为这会影响性能。此设置也可以由 JNDI 设置。


另一种方法是从准系统 Tomcat 服务器迁移到普通 JEE 服务器,例如 WildFly、Payara、Liberty 等。对于它们,上述 Eclipse 设置不再需要,您甚至可以实时编辑 bean 方法(在 Tomcat 上,您' 仍然需要为他们重新启动整个服务器)。

于 2012-06-25T12:46:35.197 回答
0

facelets.REFRESH_PERIOD:
间隔编译器检查页面更改 – 较低的值在开发过程中有用

<context-param>  
<param-name>facelets.REFRESH_PERIOD</param-name>  
<param-value>2</param-value>  
</context-param>

      (or)

<context-param>  
<param-name>facelets.REFRESH_PERIOD</param-name>  
<param-value>1</param-value>  
</context-param>
  • 您可以设置以上任何一项。
    在某一方面的变化web.xml
  • -1如果您不想影响所做的更改,请设置为。(默认值)
  • 检查这个链接

编辑:正如@BalusC所说,以上内容适用于、jsf 1.x更改jsf 2.X发布设置和javax.faces.PROJECT_STAGE.web.xml

于 2012-06-25T11:39:11.537 回答