一尘不染

如何在Tomcat中通过JNDI配置JSF 2.0应用程序的项目阶段

tomcat

一直在努力寻找一种配置Tomcat 7.0.11的方法,以便我的Web应用程序将使用Tomcat的配置中的项目阶段设置。到目前为止-
没有运气。这个想法是在Tomcat服务器/主机/应用程序范围内设置此属性,而不是在web.xml中设置。有任何想法吗?我正在使用MyFaces JSF
2实现2.0.5。


阅读 224

收藏
2020-06-16

共1个答案

一尘不染

该规范说,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中引用它。

2020-06-16