2012-12-19 36 views
10

我正在做一些JSF与MyFaces的开发工作,我得到了这个警告。在MyFaces中开发和生产有何区别

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

开发与生产模式有什么区别?是否存在安全风险?它只是性能增强?

回答

15

没有安全风险,但是会有性能影响。当项目阶段设置为开发时,那么通常会记录更多,并且缓存更少。

关于日志记录,将记录有关如何构建和呈现组件的附加调试信息。例如,如果您的<h:inputText>没有任何父母<h:form>,则会将其记录并显示为脸部消息。所有在<h:message(s)>组件中未显示的排队面信息都将显示在页面底部的单独消息列表中,并带有橙色警告字体,指示“未显示”消息。此外,异常处理不同,MyFaces将代替<error-page>显示丰富的错误页面,其中包含有关组件树和范围变量的详细信息。

关于缓存,Facelet缓存将更加频繁地刷新。因此,如果您在Facelet文件中进行更改并按F5,则会立即反映更改。在生产阶段这不是真的,你基本上需要重新启动整个服务器。

此外,jsf.js JavaScript文件将显示为未修剪的版本,从而使网页浏览器中的JS调试更容易。在制作阶段,它是缩小版本,因此缩小版本的体积更小,速度更快,但是完全无法读取。

莫哈拉有很多类似的行为,期望获得丰富的错误页面。

相关问题