2010-01-28 6 views
0

J'ai écrit une application qui utilise XPath pour interroger certains fichiers de configuration XML. Quand je le lance en éclipse, ça marche très bien. J'ai également écrit une cible de fourmis qui exécute l'application. Cependant, l'application me donne une exception d'exécution lors de l'exécution de la fourmi. L'exception dit:
XPathFactory#newInstance failed to create an XPathFactory for the default object model: http://java.sun.com/jaxp.xpath/dom
J'utilise JDK 1.6, qui est supposé avoir déjà une implémentation pour XPath. Y a-t-il quelque chose qui me manque?Lors de l'exécution de mon application avec ANT, aucune implémentation XPath ne peut être trouvée

Édition 1: Ajout de la trace de pile complète obtenue à partir de ANT. J'utilise la conformité 1.5.

 
Detected Java version: 1.5 in: C:\Java\jdk1.6.0_02\jre 
Detected OS: Windows XP 
parsing buildfile C:\Automation\LocalizationResourceAnalyzer-int\Tools\LocalizationResourceAnalyzer\dist\run_lora.xml with URI = file:///C:/Automation/LocalizationResourceAnalyzer-int/Tools/LocalizationResourceAnalyzer/dist/run_lora.xml 
Project base dir set to: C:\Automation\LocalizationResourceAnalyzer-int\Tools\LocalizationResourceAnalyzer\dist 
Build sequence for target(s) `run_all' is [run_all] 
Complete build sequence is [run_all, run, ] 

run_all: 
Project base dir set to: C:\Automation\LocalizationResourceAnalyzer-int\Tools\LocalizationResourceAnalyzer\dist 
    [antcall] calling target(s) [run] in build file C:\Automation\LocalizationResourceAnalyzer-int\Tools\LocalizationResourceAnalyzer\dist\run_lora.xml 
parsing buildfile C:\Automation\LocalizationResourceAnalyzer-int\Tools\LocalizationResourceAnalyzer\dist\run_lora.xml with URI = file:///C:/Automation/LocalizationResourceAnalyzer-int/Tools/LocalizationResourceAnalyzer/dist/run_lora.xml 
Project base dir set to: C:\Automation\LocalizationResourceAnalyzer-int\Tools\LocalizationResourceAnalyzer\dist 
Override ignored for property config.dir 
Override ignored for property report.dir 
Build sequence for target(s) `run' is [run] 
Complete build sequence is [run, run_all, ] 
    [antcall] Entering C:\Automation\LocalizationResourceAnalyzer-int\Tools\LocalizationResourceAnalyzer\dist\run_lora.xml... 
Build sequence for target(s) `run' is [run] 
Complete build sequence is [run, run_all, ] 

run: 
    [echo] ant.java.version: 1.5 
    [echo] C:\apache-ant-1.6.5\lib\ant-launcher.jar;C:\Program Files\Common Files\Compuware\DLM40JNI.jar;C:\apache-ant-1.6.5\lib\ant-antlr.jar;C:\apache-ant-1.6.5\lib\ant-apache-bcel.jar;C:\apache-ant-1.6.5\lib\ant-apache-bsf.jar;C:\apache-ant-1.6.5\lib\ant-apache-log4j.jar;C:\apache-ant-1.6.5\lib\ant-apache-oro.jar;C:\apache-ant-1.6.5\lib\ant-apache-regexp.jar;C:\apache-ant-1.6.5\lib\ant-apache-resolver.jar;C:\apache-ant-1.6.5\lib\ant-commons-logging.jar;C:\apache-ant-1.6.5\lib\ant-commons-net.jar;C:\apache-ant-1.6.5\lib\ant-icontract.jar;C:\apache-ant-1.6.5\lib\ant-jai.jar;C:\apache-ant-1.6.5\lib\ant-javamail.jar;C:\apache-ant-1.6.5\lib\ant-jdepend.jar;C:\apache-ant-1.6.5\lib\ant-jmf.jar;C:\apache-ant-1.6.5\lib\ant-jsch.jar;C:\apache-ant-1.6.5\lib\ant-junit.jar;C:\apache-ant-1.6.5\lib\ant-launcher.jar;C:\apache-ant-1.6.5\lib\ant-netrexx.jar;C:\apache-ant-1.6.5\lib\ant-nodeps.jar;C:\apache-ant-1.6.5\lib\ant-starteam.jar;C:\apache-ant-1.6.5\lib\ant-stylebook.jar;C:\apache-ant-1.6.5\lib\ant-swing.jar;C:\apache-ant-1.6.5\lib\ant-trax.jar;C:\apache-ant-1.6.5\lib\ant-vaj.jar;C:\apache-ant-1.6.5\lib\ant-weblogic.jar;C:\apache-ant-1.6.5\lib\ant-xalan1.jar;C:\apache-ant-1.6.5\lib\ant-xslp.jar;C:\apache-ant-1.6.5\lib\ant.jar;C:\apache-ant-1.6.5\lib\bsf.jar;C:\apache-ant-1.6.5\lib\cruisecontrol-antlib.jar;C:\apache-ant-1.6.5\lib\js.jar;C:\apache-ant-1.6.5\lib\junit.jar;C:\apache-ant-1.6.5\lib\statcvs.jar;C:\apache-ant-1.6.5\lib\xercesImpl.jar;C:\apache-ant-1.6.5\lib\xml-apis.jar;C:\Java\jdk1.6.0_02\lib\tools.jar 
    [java] Running in same VM Executing 'com.ti.et.swtest.l10n.lora.Lora' with arguments: 
    [java] '-conf' 
    [java] 'C:\Automation\LocalizationResourceAnalyzer-int\Tools\LocalizationResourceAnalyzer\dist\config\Nspire\product_bundles.xml' 
    [java] '-locales' 
    [java] 'C:\Automation\LocalizationResourceAnalyzer-int\Tools\LocalizationResourceAnalyzer\dist\config\Nspire\supported_locales.xml' 
    [java] '-xrules' 
    [java] 'C:\Automation\LocalizationResourceAnalyzer-int\Tools\LocalizationResourceAnalyzer\dist\config\Nspire\exclusion_rules.xml' 
    [java] '-loc' 
    [java] 'C:\LoRA_Reports\Nspire\localization_report.xml' 
    [java] 
    [java] The ' characters around the executable and arguments are 
    [java] not part of the command. 
    [java] Feb 2, 2010 6:28:07 PM com.ti.et.swtest.l10n.lora.Lora main 
    [java] INFO: Localization Resource Analyzer (LoRA) started. 
    [java] Feb 2, 2010 6:28:07 PM com.ti.et.swtest.l10n.lora.Lora loadLocales 
    [java] INFO: Loading locales from: C:\Automation\LocalizationResourceAnalyzer-int\Tools\LocalizationResourceAnalyzer\dist\config\Nspire\supported_locales.xml 
    [java] java.lang.RuntimeException: XPathFactory#newInstance() failed to create an XPathFactory for the default object model: http://java.sun.com/jaxp/xpath/dom with the XPathFactoryConfigurationException: javax.xml.xpath.XPathFactoryConfigurationException: No XPathFactory implementation found for the object model: http://java.sun.com/jaxp/xpath/dom 
    [java]  at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:180) 
    [java]  at org.apache.tools.ant.taskdefs.Java.run(Java.java:710) 
    [java]  at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:178) 
    [java]  at org.apache.tools.ant.taskdefs.Java.execute(Java.java:84) 
    [java]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) 
    [java]  at org.apache.tools.ant.Task.perform(Task.java:364) 
    [java]  at org.apache.tools.ant.Target.execute(Target.java:341) 
    [java]  at org.apache.tools.ant.Target.performTasks(Target.java:369) 
    [java]  at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216) 
    [java]  at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:37) 
    [java]  at org.apache.tools.ant.Project.executeTargets(Project.java:1068) 
    [java]  at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:382) 
    [java]  at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:107) 
    [java]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) 
    [java]  at org.apache.tools.ant.Task.perform(Task.java:364) 
    [java]  at org.apache.tools.ant.Target.execute(Target.java:341) 
    [java]  at org.apache.tools.ant.Target.performTasks(Target.java:369) 
    [java]  at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216) 
    [java]  at org.apache.tools.ant.Project.executeTarget(Project.java:1185) 
    [java]  at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40) 
    [java]  at org.apache.tools.ant.Project.executeTargets(Project.java:1068) 
    [java]  at org.apache.tools.ant.Main.runBuild(Main.java:668) 
    [java]  at org.apache.tools.ant.Main.startAnt(Main.java:187) 
    [java]  at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246) 
    [java]  at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67) 
    [java] Caused by: java.lang.RuntimeException: XPathFactory#newInstance() failed to create an XPathFactory for the default object model: http://java.sun.com/jaxp/xpath/dom with the XPathFactoryConfigurationException: javax.xml.xpath.XPathFactoryConfigurationException: No XPathFactory implementation found for the object model: http://java.sun.com/jaxp/xpath/dom 
    [java]  at javax.xml.xpath.XPathFactory.newInstance(XPathFactory.java:101) 
    [java]  at com.ti.et.swtest.util.xml.XmlFile.(Unknown Source) 
    [java]  at com.ti.et.swtest.util.xml.XmlFile.(Unknown Source) 
    [java]  at com.ti.et.swtest.l10n.lora.Lora.loadLocales(Unknown Source) 
    [java]  at com.ti.et.swtest.l10n.lora.Lora.main(Unknown Source) 
    [java]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    [java]  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    [java]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    [java]  at java.lang.reflect.Method.invoke(Method.java:597) 
    [java]  at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:202) 
    [java]  at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:134) 
    [java]  ... 24 more 
    [java] --- Nested Exception --- 
    [java] java.lang.RuntimeException: XPathFactory#newInstance() failed to create an XPathFactory for the default object model: http://java.sun.com/jaxp/xpath/dom with the XPathFactoryConfigurationException: javax.xml.xpath.XPathFactoryConfigurationException: No XPathFactory implementation found for the object model: http://java.sun.com/jaxp/xpath/dom 
    [java]  at javax.xml.xpath.XPathFactory.newInstance(XPathFactory.java:101) 
    [java]  at com.ti.et.swtest.util.xml.XmlFile.(Unknown Source) 
    [java]  at com.ti.et.swtest.util.xml.XmlFile.(Unknown Source) 
    [java]  at com.ti.et.swtest.l10n.lora.Lora.loadLocales(Unknown Source) 
    [java]  at com.ti.et.swtest.l10n.lora.Lora.main(Unknown Source) 
    [java]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    [java]  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
    [java]  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
    [java]  at java.lang.reflect.Method.invoke(Method.java:597) 
    [java]  at org.apache.tools.ant.taskdefs.ExecuteJava.run(ExecuteJava.java:202) 
    [java]  at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:134) 
    [java]  at org.apache.tools.ant.taskdefs.Java.run(Java.java:710) 
    [java]  at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:178) 
    [java]  at org.apache.tools.ant.taskdefs.Java.execute(Java.java:84) 
    [java]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) 
    [java]  at org.apache.tools.ant.Task.perform(Task.java:364) 
    [java]  at org.apache.tools.ant.Target.execute(Target.java:341) 
    [java]  at org.apache.tools.ant.Target.performTasks(Target.java:369) 
    [java]  at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216) 
    [java]  at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(SingleCheckExecutor.java:37) 
    [java]  at org.apache.tools.ant.Project.executeTargets(Project.java:1068) 
    [java]  at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:382) 
    [java]  at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:107) 
    [java]  at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:275) 
    [java]  at org.apache.tools.ant.Task.perform(Task.java:364) 
    [java]  at org.apache.tools.ant.Target.execute(Target.java:341) 
    [java]  at org.apache.tools.ant.Target.performTasks(Target.java:369) 
    [java]  at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1216) 
    [java]  at org.apache.tools.ant.Project.executeTarget(Project.java:1185) 
    [java]  at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:40) 
    [java]  at org.apache.tools.ant.Project.executeTargets(Project.java:1068) 
    [java]  at org.apache.tools.ant.Main.runBuild(Main.java:668) 
    [java]  at org.apache.tools.ant.Main.startAnt(Main.java:187) 
    [java]  at org.apache.tools.ant.launch.Launcher.run(Launcher.java:246) 
    [java]  at org.apache.tools.ant.launch.Launcher.main(Launcher.java:67) 
    [antcall] Exiting C:\Automation\LocalizationResourceAnalyzer-int\Tools\LocalizationResourceAnalyzer\dist\run_lora.xml. 

BUILD SUCCESSFUL 
Total time: 0 seconds 

+0

Pouvez-vous poster une pile plus grande et plus de détails sur votre environnement (serveurs d'applications, classpath, etc.)? – Thimmayya

Répondre

1

Ajoutez l'attribut fork="true" à votre tâche java dans le script fourmi afin que votre classe est exécuté dans une nouvelle machine virtuelle java. Il est probable que quelque chose dans ant soit en conflit avec les bibliothèques XML intégrées au JDK.

1

Cette exception ressemble à elle vient de la classe XPathFactory, alors java est de trouver la bibliothèque correcte. Il semble plutôt que XPathFactory plante. Peut-être this aide?

0
  • Si vous avez déclaré une propriété de système ou JAVA_HOME $/lib/jaxp.properties pour la propriété JAXP "javax.xml.xpath.XPathFactory: uri" et attribué la valeur "http://java.sun.com/jaxp.xpath/dom ", alors je suggère de changer cette valeur à" http://java.sun.com/jaxp/xpath/dom ".
  • Si la propriété ci-dessus est déclarée correctement, essayez de supprimer complètement la propriété.
  • Si cela ne fonctionne toujours pas correctement, ajoutez du code avant d'instancier XPathFactory pour détecter le fichier jar à partir duquel la classe est chargée. "Voir ClassLoader.findResource (nom de chaîne)". Je vois que Ant empaquette aussi un xml-apis.jar qui a une implémentation de XPathFactoryFinder et XPathFactory et peut-être cela interfère avec les classes dans JDK.

HTH

+0

Je ne vois aucun fichier nommé 'jaxp.properties' dans' JAVA_HOME'. – ArtOfWarfare

0

Je sais qu'il s'agit d'un thread plus ancien, mais this post of mine pourrait apporter quelques éclaircissements sur le problème. Il trouve la XPathFactory que vous spécifiez en utilisant un paramètre -D que je n'ai jamais vu documenté.

Questions connexes