使用自己的JSF配置部署多个war文件

时间:2012-05-04 11:04:01

标签: java maven jsf-2 web.xml

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

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

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

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

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

<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>

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

1 个答案:

答案 0 :(得分:0)

  

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

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