2016-06-20 8 views
2

Antツールを使用してソフトウェア のインストールプロセスを自動化する方法を模索しています。Ant xmltaskを使用してデータソースをwildflyのstandalone.xmlに追加する8

wildfly standalone.xmlファイルを編集してデータソースを追加する以外は、ほとんどが達成できました。

私はここで問題を感じています。なぜなら、ant xmltaskは複数の名前空間 を解決できないからです。

コピーパスを<insert path="/:server/:profile/:subsystem[3]/:datasources" unless="modelexists">, ':'と指定して名前空間があることを指定しました。

名前空間がスタンドアロンのサーバー要素上にあるとき、私は<profile><subsystem> を編集しようとしていますので、サブシステムが再び別の名前空間を持っているので、それはそれにデータソースを挿入することができなくなり、それが正常に動作しますが。

私はここで誰かが私を助けてくれることを望んでいます。

ありがとうございました。

答えて

0

他の回答(たとえばHow to replace value of an XML field using Ant?)で述べたように、問題は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> 
+0

こんにちはパトリス、 ソリューションは完全に働きました! ありがとうございました。 –

関連する問題