2013-02-19 116 views
1

我有Java项目上有不同的模块。该项目有一个核心模块,其中保存了所有常用配置文件。每个模块都有独立的配置文件,如.properties文件,hibernate.cfg,web.xml等。每次所有模块都不会在最终版本中出现。如何连接两个web.xml?

我的问题是,假设有3个模块,如A,B & C都存在。每个都有web.xml,它只包含必需的servlet和映射。我想知道在建造时如何连接这些web.xml。我知道从ant我可以调用一个Java应用程序。标签的位置在web.xml中很重要。

如何有效连接这些web.xml?我为此尝试了xstream,但它是失败的。

回答

0

你的问题本身有答案,编写一个小的java程序来解析你想要合并的所有XML,获得所需的nodeList,按照你想要的顺序写入新的XML。 在Ant构建过程中调用此java程序。

+0

你有一个示例代码或链接,我就可以开始做呢? – 2013-02-19 09:12:44

0

有您能做到这一点以下几种方式:使用你的目的的XStream编组

  1. ;请参阅question on marshalling of Map了解如何编组对象。或使用official教程
  2. 使用SAX解析,手动转换它。
  3. 使用JSON.org将整个XML转换为JSON并合并每个XML并从JSON重建XML。 注意:为此目的不使用xstream,它颠倒了整个XML,导致产生XML的验证错误。
0

如果您使用的是3.0的Servlet容器,那么只有你的核心模块将有一个web.xml和你的其他模块将各自提供自己web-fragment.xml

+0

不幸的是,我的雇主不希望我现在迁移到servlet 3 – 2013-02-19 11:35:38