2016-06-20 30 views
2

Ich erkunde die Möglichkeiten automatisieren den Installationsprozess einer Software mit Ant Tool.Verwenden von Ant Xmltask zum Hinzufügen einer Datenquelle zu Standalone.xml von Wildfly 8

Die meisten von denen konnte ich mit Ausnahme von einem, dass Bearbeitung der Wildfly Standalone.xml-Datei, um eine Datenquelle hinzufügen zu erreichen.

Ich fühle das Problem hier ist, dass die ant xmltask die mehrere Namespaces nicht auflösen kann.

Ich habe den Kopierpfad als <insert path="/:server/:profile/:subsystem[3]/:datasources" unless="modelexists">, ':' angegeben, dass es einen Namespace gibt.

Obwohl es funktioniert gut, wenn der Namespace auf dem Server-Element von eigenständigen, aber da ich versuche, die <profile><subsystem> zu bearbeiten und weil das Subsystem wieder einen anderen Namensraum hat, macht es unmöglich, die Datenquelle, um es einzufügen.

Ich hoffe, jemand kann mir hier helfen.

Danke.

Antwort

0

Wie in anderen Antworten (z. B. How to replace value of an XML field using Ant?) erwähnt, ist Ihr Problem, Ant nicht ordnungsgemäß mit Namespaces in XPath. Die Syntax, die ":" verwendet, hat für mich nicht konsequent funktioniert. Sie müssen stattdessen die Syntax //*[local-name()='server'] verwenden.

Bitte versuchen:

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

Hallo Patrice, Die Lösung funktionierte perfekt! Vielen Dank für die Hilfe :) –