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.jar
Ant のクラスパスにないため、 を使用して追加しようとしました<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 でこれを実現する別の方法を提案できます。
前もって感謝します。