【问题标题】:Deploying multiple war files with own JSF configurations使用自己的 JSF 配置部署多个 war 文件
【发布时间】:2012-05-13 22:11:26
【问题描述】:

我正在使用 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>

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

【问题讨论】:

  • 为什么在 webapp 的 /WEB-INF/lib 中将 JSF 模块作为 JAR 文件并不优雅?这正是您的问题的解决方案。
  • 因为模块也有网页内容(xhtml 和 css)!每次更改时从 JAR 中提取内容是一个不错的选择吗?我在想最好像战争一样编译它并将两个项目重叠......
  • 对不起,我仍然没有看到/理解具体的问题。

标签: java maven jsf-2 web.xml


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 2019-08-15
    • 1970-01-01
    • 1970-01-01
    • 2013-03-26
    • 2016-07-11
    相关资源
    最近更新 更多