2016-06-20 3 views
2

J'explore les façons d'automatiser le processus d'installation d'un logiciel en utilisant Ant Tool.En utilisant Ant xmltask pour ajouter une source de données au fichier standalone.xml de wildfly 8

La plupart de ce que j'ai été capable d'accomplir à l'exception de celui qui est éditant le fichier wildfly standalone.xml pour y ajouter une source de données.

Je pense que le problème ici est que la xmltask Ant est incapable de résoudre les espaces de noms multiples .

J'ai spécifié le chemin de copie comme <insert path="/:server/:profile/:subsystem[3]/:datasources" unless="modelexists">, ':' en spécifiant qu'il existe un espace de noms.

Bien qu'il fonctionne très bien lorsque l'espace de noms est sur l'élément serveur autonome, mais depuis que je suis en train de modifier le <profile><subsystem> et parce que le sous-système a encore un autre espace de noms, il est impossible d'insérer la source de données à lui. J'espère que quelqu'un pourra m'aider ici.

Merci.

Répondre

0

Comme mentionné sur d'autres réponses (par exemple How to replace value of an XML field using Ant?), votre problème est que Ant ne traite pas correctement les espaces de noms dans xpath. La syntaxe qui utilise ":" n'a pas fonctionné de manière cohérente pour moi. Vous devez utiliser la syntaxe //*[local-name()='server'] à la place.

S'il vous plaît essayer:

<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

Salut Patrice, La solution a parfaitement fonctionné! Merci beaucoup pour l'aide :) –