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

NSP*_*GNk 3 debugging production tomcat jsf-2

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

tin*_*e2k 11

规范说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设置/覆盖上下文参数.你需要把它放在<Context> -tag中:

<Parameter name="javax.faces.PROJECT_STAGE" value="Production" override="false" />
Run Code Online (Sandbox Code Playgroud)

小心:override ="false"这里意味着这个参数不能被web.xml覆盖(不是相反)!

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

<Environment name="jsf/ProjectStage" value="Production" type="java.lang.String" override="false"/>
Run Code Online (Sandbox Code Playgroud)

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