0

我正在使用 Maven 将 Java Web 项目部署到我的 Tomcat 6.0 服务器中。我有一个名为“系统”的项目,它是一场战争,并且有他自己的 JSF 配置和 JSF 托管 bean。

目标是这个系统可以安装一些应用程序,并且应用程序本身也有它们的 Web 内容和 JSF 配置。我的问题来了,我有两个选择。

如果我将应用程序编译为 jar 文件,则 faces-config.xml 文件必须存储在项目的 META-INF 文件夹中,因此在加载 jar 时,JSF 可以找到该文件,因为它位于默认位置。但是,我的应用程序也有网络内容,如果我想阅读它,我必须将它存储在主系统 (webapp) 位置。这是一个实用但不优雅的解决方案。

我想要做的是将应用程序定义为一个war文件,并将其包含在主系统POM文件中,我的应用程序中的每个Web内容都将自动发布到服务器中。这是个好主意,但是我可以用我的 faces-config.xml 文件做什么?我的系统中已经定义了一个,当 Maven 尝试部署它时,它发现服务器中已经有一个相同的命名文件。所以我无法从我的系统中获取我的应用 JSF 配置。

有一种方法可以定义多个 jsf-config 文件,使用 web.xml 中的 context-param。类似的东西有效,但我希望它是动态的:

<context-param>
    <param-name>javax.faces.CONFIG_FILES</param-name>
    <param-value>/WEB-INF/faces-config.xml, /WEB-INF/faces-managed-beans.xml,/WEB-INF/faces-navigation.xml</param-value>
</context-param>

有人对此有任何想法吗?提前致谢!

4

1 回答 1

0

这是个好主意,但是我可以用我的 faces-config.xml 文件做什么?我的系统中已经定义了一个...

听起来您应该删除该副本,并在每个 webapp 中放置一个特定于 webapp 的副本。

于 2012-05-04T11:19:41.860 回答