一直在努力寻找一种配置Tomcat 7.0.11的方法,以便我的Web应用程序将使用Tomcat的配置中的项目阶段设置。到目前为止- 没有运气。这个想法是在Tomcat服务器/主机/应用程序范围内设置此属性,而不是在web.xml中设置。有任何想法吗?我正在使用MyFaces JSF 2实现2.0.5。
该规范说,JSF实现使用 java:comp / env / jsf / ProjectStage 下的JNDI查找Project Stage 。如果未找到,它将使用web.xml中的上下文参数javax.faces.PROJECT_STAGE。这意味着,如果使用JNDI在Tomcat上定义/找到了该值,则首选值将超过web.xml设置。
您可以做两件事:
选项1: 覆盖上下文参数:这意味着可以使用Tomcat server.xml或context.xml设置/覆盖上下文参数。您需要将其放在-标签中:
<Parameter name="javax.faces.PROJECT_STAGE" value="Production" override="false" />
注意:这里的 override =“ false” 表示该参数不能被web.xml覆盖(反之亦然)!
选项2: 配置可以使用JNDI找到的资源:通过此方法,JSF实施可以使用JNDI查找来解决项目阶段。
<Environment name="jsf/ProjectStage" value="Production" type="java.lang.String" override="false"/>
您也可以将其移动到server.xml中的-标签。在这种情况下,您需要使用 -tag在 -tag中引用它。