使用Ant xmltask向wildfly 8的standalone.xml添加Datasource
Using Ant xmltask to add a Datasource to the standalone.xml of wildfly 8
我正在探索自动化软件安装过程的方法
使用 Ant 工具。
大部分我都能完成,除了一个
编辑 wildfly standalone.xml 文件以向其添加数据源。
我感觉这里的问题是ant xmltask无法解析
多个命名空间。
我指定复制路径为<insert path="/:server/:profile/:subsystem[3]/:datasources" unless="modelexists">
,
':' 指定有命名空间。
虽然当命名空间位于独立的服务器元素上时它工作正常但是因为我正在尝试编辑 <profile><subsystem>
并且因为子系统再次具有另一个名称空间,所以无法将数据源插入其中。
我希望有人能帮助我。
谢谢。
正如其他答案中提到的(例如 ),您的问题是 Ant 无法正确处理 xpath 中的名称空间。使用“:”的语法对我来说并不是一直有效。您需要改用 //*[local-name()='server']
语法。
请尝试:
<xmltask source="standalone.xml" dest="standalone.xml" report="true">
<insert path="*[local-name()='server']/*[local-name()='profile']/*[local-name()='subsystem'][3]/*[local-name()='datasources'] unless="modelexists">
</xmltask>
我正在探索自动化软件安装过程的方法 使用 Ant 工具。
大部分我都能完成,除了一个 编辑 wildfly standalone.xml 文件以向其添加数据源。
我感觉这里的问题是ant xmltask无法解析 多个命名空间。
我指定复制路径为<insert path="/:server/:profile/:subsystem[3]/:datasources" unless="modelexists">
,
':' 指定有命名空间。
虽然当命名空间位于独立的服务器元素上时它工作正常但是因为我正在尝试编辑 <profile><subsystem>
并且因为子系统再次具有另一个名称空间,所以无法将数据源插入其中。
我希望有人能帮助我。
谢谢。
正如其他答案中提到的(例如 //*[local-name()='server']
语法。
请尝试:
<xmltask source="standalone.xml" dest="standalone.xml" report="true">
<insert path="*[local-name()='server']/*[local-name()='profile']/*[local-name()='subsystem'][3]/*[local-name()='datasources'] unless="modelexists">
</xmltask>