1

debug.classpath物件の価値を更新したい。私はXmlTask操作を行うために使用しています。ただし、DTD見つからない問題を実行しています。

これが私のターゲット XML ファイルです。

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Configuration SYSTEM "xconf.dtd">
<Configuration>
     <Property name="debug.classpath" value="<changeme>"
</Configuration>

これが私の Ant ターゲットです。

<target name="configure" >
      <xmltask source="myxml.xml">
            <attr path="//Property[@name='debug.classpath']" attr="value"  value="New Value"/>
      </xmltask>    
</target>

このターゲットを実行すると、以下のエラーが発生します。

[xmltask] java.io.FileNotFoundException: D:\utils\xconf.dtd (指定されたファイルが見つかりません)

この DTD は、 という Jar ファイルに存在しますUtils.jar。google'ingした後XmlCatalog、ターゲットのバージョンの下に書いたタスクと使用を見つけました(意図的に使用したかどうかはわかりませんXmlCatalog)。はUtils.jarAnt のクラスパスにないため、 を使用して追加しようとしました<classpath>

<target name="configure">
    <xmlcatalog id="XconfDtd">
        <classpath>
            <pathelement location="D:/libs/Utils.jar"/>
        </classpath>
        <dtd location="xconf.dtd" />
    </xmlcatalog>
    <xmltask source="${env.WT_HOME}/codebase/wt.properties.xconf">
        <xmlcatalog refid="XconfDtd" />
        <attr path="//Property[@name='debug.classpath']" attr="value" value="New Value" />
    </xmltask>
</target>

ただし、このターゲットを実行すると、以下のエラーが発生します

[xmltask] java.lang.NullPointerException [xmltask] at org.apache.tools.ant.types.XMLCatalog.findMatchingEntry(XMLCatalog.java:592) [xmltask] at org.apache.tools.ant.types.XMLCatalog.access$000 (XMLCatalog.java:119) [xmltask] at org.apache.tools.ant.types.XMLCatalog$InternalResolver.resolveEntity(XMLCatalog.java:811) [xmltask] at org.apache.tools.ant.types.XMLCatalog.resolveEntity (XMLCatalog.java:385) [xmltask] com.sun.org.apache.xerces.internal.util.EntityResolverWrapper.resolveEntity(EntityResolverWrapper.java:110) [xmltask] com.sun.org.apache.xerces.internal .impl.XMLEntityManager.resolveEntityAsPerStax(XMLEntityManager.java:994) [xmltask] at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1149) [xmltask] at com.sun .org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1047) [xmltask] at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java: 960) [xmltask] at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:607) [xmltask] at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl. next(XMLNSDocumentScannerImpl.java:116) [xmltask] com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488) [xmltask] com.sun.org.apache.xerces. internal.parsers.XML11Configuration.parse(XML11Configuration.java:835) [xmltask] com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.ジャワ:764)

入れUtils.jarた後でも、$ANT_HOME/lib上記のエラーが表示されます。どんな助けでも大歓迎です。Ant でこれを実現する別の方法を提案できます。

前もって感謝します。

4

0 に答える 0