如何连接两个web.xml?

时间:2013-02-19 07:03:03

标签: java xml web-applications ant

我有Java项目,上面有不同的模块。该项目有一个核心模块,其中保留了所有常见配置文件。每个模块都有单独的配置文件,如.properties文件,hibernate.cfgweb.xml等。每次所有模块都不必在最终版本中存在。

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

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

4 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

您可以通过以下方式实现这一目标:

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

答案 2 :(得分:0)

如果您使用的是Servlet 3.0容器,那么只有您的核心模块会有web.xml,而您的其他模块都会提供自己的web-fragment.xml

答案 3 :(得分:0)

xmltask非常适合使用ant进行xmlprocessing 在此查看详细信息和示例:
xmltask:
xml task manual
xml manipulation using xml task
有用的xpath链接:
http://zvon.org/xxl/XPathTutorial/
http://www.w3schools.com/xpath/