如何在 Tomcat 中通过 JNDI 配置 JSF 2.0 应用程序的项目阶段
Posted
技术标签:
【中文标题】如何在 Tomcat 中通过 JNDI 配置 JSF 2.0 应用程序的项目阶段【英文标题】:How to configure JSF 2.0 application's project stage via JNDI in Tomcat 【发布时间】:2011-09-25 09:03:23 【问题描述】:一直在努力寻找配置 Tomcat 7.0.11 的方法,以便我的 Web 应用程序可以使用 Tomcat 配置中的项目阶段设置。到目前为止 - 没有运气。想法是在 Tomcat 服务器/主机/应用程序范围内设置此属性,而不是在 web.xml 中设置它。有任何想法吗?我正在使用 MyFaces JSF 2 实现 2.0.5。
【问题讨论】:
【参考方案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 中的
【讨论】:
以上是关于如何在 Tomcat 中通过 JNDI 配置 JSF 2.0 应用程序的项目阶段的主要内容,如果未能解决你的问题,请参考以下文章