Eclipse 如何在不重新启动Tomcat的情况下在JSF项目中持续部署更改?

Eclipse 如何在不重新启动Tomcat的情况下在JSF项目中持续部署更改?,eclipse,tomcat,jsf,deployment,facelets,Eclipse,Tomcat,Jsf,Deployment,Facelets,我在Eclipse中有一个JSF项目。现在,每当我对.xhtml文件进行更改时,我都必须停止Tomcat服务器,然后再次启动Tomcat服务器。 有没有其他方法可以让我在每次更改时不必重新启动服务器就可以持续构建和测试我的应用程序?facelets。刷新周期:– 间隔编译器检查页面更改–较低的值在开发过程中很有用 <context-param> <param-name>facelets.REFRESH_PERIOD</param-name> <p

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

facelets。刷新周期:
间隔编译器检查页面更改–较低的值在开发过程中很有用

<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>

facelets.REFRESH\u周期
2.
(或)
facelets.REFRESH\u周期
1.
  • 您可以设置上述任意一项。
    web.xml
  • 如果不想影响所做的更改,请设置为
    -1
    。(默认值)
  • 检查。

编辑:如@BalusC所述,上述内容适用于
jsf1.x
,适用于
jsf2.x
更改发布设置和
javax.faces.PROJECT\u STAGE
web.xml

facelets。刷新周期:-
间隔编译器检查页面更改–较低的值在开发过程中很有用

<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>

facelets.REFRESH\u周期
2.
(或)
facelets.REFRESH\u周期
1.
  • 您可以设置上述任意一项。
    web.xml
  • 如果不想影响所做的更改,请设置为
    -1
    。(默认值)
  • 检查。

编辑:正如@BalusC所说,上述内容适用于
jsf 1.x
,适用于
jsf 2.x
更改发布设置和
javax.faces.PROJECT\u STAGE
web.xml

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

  • 告诉Eclipse通过如下更改Tomcat设置来自动发布更改(双击Servers视图中的Tomcat服务器条目以获得此屏幕):

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


  • 通过将以下内容添加到
    web.xml
    ,告诉JSF webapp当前处于开发模式:

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



  • 另一种选择是从基本的Tomcat服务器迁移到普通的JEE服务器,如WildFly、Payara、Liberty等。对于他们来说,上述Eclipse设置不再是必需的,您甚至可以实时编辑bean方法(在Tomcat上,您仍然需要为他们重新启动整个服务器)当您需要开发JSF项目时,至少需要进行两项更改:

  • 告诉Eclipse通过如下更改Tomcat设置来自动发布更改(双击Servers视图中的Tomcat服务器条目以获得此屏幕):

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


  • 通过将以下内容添加到
    web.xml
    ,告诉JSF webapp当前处于开发模式:

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



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

    您使用的是哪个IDE?当您仅在xhtml中进行更改时,您不需要重新部署,当您在可编译代码中进行更改时,您需要重新部署。还要查找“热重部署tomcat”关键字。您使用的是哪个IDE?当您仅在xhtml中进行更改时,您不需要重新部署,当您在可编译代码中进行更改时,您需要重新部署。还要查找“hot redeploy tomcat”关键字。请注意,这两个关键字特定于旧Facelets 1.x,在JSF 2.x Facelets中已弃用。请注意,这两个关键字特定于旧Facelets 1.x,在JSF 2.x Facelets中已弃用。