Debugging 如何配置JSF2.0应用程序&x27;通过Tomcat中的JNDI完成项目阶段

Debugging 如何配置JSF2.0应用程序&x27;通过Tomcat中的JNDI完成项目阶段,debugging,tomcat,jsf-2,production,Debugging,Tomcat,Jsf 2,Production,我一直在努力寻找一种配置Tomcat 7.0.11的方法,以便我的web应用程序能够使用Tomcat配置中的项目阶段设置。到目前为止,没有运气。其思想是在Tomcat服务器/主机/应用程序范围内设置此属性,而不是在web.xml中设置。有什么想法吗?我正在使用MyFaces JSF 2实现2.0.5。规范说JSF实现使用java:comp/env/JSF/ProjectStage下的JNDI查找项目阶段。如果未找到,则使用web.xml中的上下文参数javax.faces.PROJECT_STA

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

规范说JSF实现使用java:comp/env/JSF/ProjectStage下的JNDI查找项目阶段。如果未找到,则使用web.xml中的上下文参数javax.faces.PROJECT_STAGE。这意味着,如果使用JNDI在Tomcat上定义/找到,则preferred的值优于web.xml设置

您可以做两件事:

选项1:覆盖上下文参数:这意味着使用Tomcat server.xml或context.xml设置/覆盖上下文参数。您需要将其放入-标记中:


小心:override=“false”在这里意味着web.xml不能覆盖此参数(而不是相反)

选项2:配置一个可以使用JNDI找到的资源:通过使用它,JSF实现可以使用JNDI查找来解析项目阶段

<Environment name="jsf/ProjectStage" value="Production" type="java.lang.String" override="false"/>

您还可以将其移动到server.xml中的-tag。在这种情况下,您需要使用-tag在-tag中引用它

<Environment name="jsf/ProjectStage" value="Production" type="java.lang.String" override="false"/>