Jsf 什么';这就是MyFaces的开发和生产之间的区别

Jsf 什么';这就是MyFaces的开发和生产之间的区别,jsf,jsf-2,myfaces,Jsf,Jsf 2,Myfaces,我正在用MyFaces在JSF中进行一些开发工作,我得到了这个警告 ******************************************************************* *** WARNING: Apache MyFaces-2 is running in DEVELOPMENT mode. *** *** ^^^^^^^^^^^ *** *** Do NOT d

我正在用MyFaces在JSF中进行一些开发工作,我得到了这个警告

*******************************************************************
*** WARNING: Apache MyFaces-2 is running in DEVELOPMENT mode.   ***
***                                         ^^^^^^^^^^^         ***
*** Do NOT deploy to your live server(s) without changing this. ***
*** See Application#getProjectStage() for more information.     ***
*******************************************************************

开发模式和生产模式有什么区别?是否存在安全风险?这仅仅是性能增强吗?

没有安全风险,但是会影响性能。当projectstage设置为development时,日志记录的频率会更高,缓存的频率会更低

关于日志记录,将记录有关如何构建和呈现组件的其他调试信息。例如,如果您的
没有任何父级
,则这将被记录并显示为faces消息。所有未显示在任何
组件中的排队面消息都将显示在页面底部的单独消息列表中,带有橙色警告字体,表示“未显示”消息。此外,异常处理也不同,MyFaces将代替
显示一个丰富的错误页面,其中包括有关组件树和作用域变量的详细信息

至于缓存,Facelet缓存将更定期地刷新。因此,如果您在Facelet文件中进行更改并按F5,那么更改将“立即”反映出来。对于生产阶段,情况并非如此,您基本上需要重新启动整个服务器

另外,
jsf.js
JavaScript文件将显示为未统一的版本,允许在webbrowser中更轻松地调试js。在生产阶段,它是缩小版,因此更小更快地提供服务,但它是完全不可读的

除了丰富的错误页面,Mojarra的行为非常相似。

因此最好在生产环境中也设置facelets.DEVELOPMENT false?@afterbit:通常仅在生产环境中,因为这些环境显然不是开发环境。另外,请升级到JSF2.x。