Ho uno strano problema quando provo a eseguire una generazione di maven che usa il plugin jaxb2 per fare codegen JAXB (vedi stacktrace sotto). Il meglio che riesco a capire è che c'è un'implementazione di DTMManager che viene caricata in classe da un JAR diverso da quello di xalan-2.7.1; tuttavia, ho verificato che il classpath utilizzato per l'esecuzione di jaxb: genera solo l'obiettivo xalan-2.7.1.jar che contiene un DTMManager o un DTMManagerDefault - quindi non ho idea di cosa altro potrebbe ottenere nel modo in cui .ClassCastException in casting DTMManagerDefault in DTMManager durante maven jaxb codegen
Un ultimo punto di dati: la nostra build specifica un profilo 'istantanea', che in realtà serve solo a JARare i sorgenti (usando maven-source-plugin) e pubblicarli come artefatti. Lo scenario di errore che ho descritto sopra solo si verifica quando questo profilo è specificato in aggiunta al valore predefinito.
Sto usando Maven 2.2.1 in esecuzione su JDK 1.6.0_21 di Sun a 64 bit su Linux x64 (Fedora 13) - vedi sotto lo stacktrace per le informazioni 'mvn -v'.
Qualche idea su quale potrebbe essere il problema e/o su come risolverlo? Questo è stato mi ha causato dolore per i giorni scorsi ed è ora bloccando il progresso :(
java.lang.ClassCastException: org.apache.xml.dtm.ref.DTMManagerDefault cannot be cast to org.apache.xml.dtm.DTMManager
at org.apache.xml.dtm.DTMManager.newInstance(DTMManager.java:137)
at org.apache.xpath.XPathContext.<init>(XPathContext.java:102)
at org.apache.xpath.jaxp.XPathImpl.eval(XPathImpl.java:207)
at org.apache.xpath.jaxp.XPathImpl.evaluate(XPathImpl.java:281)
at com.sun.tools.xjc.reader.internalizer.Internalizer.buildTargetNodeMap(Internalizer.java:224)
at com.sun.tools.xjc.reader.internalizer.Internalizer.buildTargetNodeMap(Internalizer.java:289)
at com.sun.tools.xjc.reader.internalizer.Internalizer.transform(Internalizer.java:134)
at com.sun.tools.xjc.reader.internalizer.Internalizer.transform(Internalizer.java:96)
at com.sun.tools.xjc.reader.internalizer.DOMForest.transform(DOMForest.java:448)
at com.sun.tools.xjc.ModelLoader.buildDOMForest(ModelLoader.java:342)
at com.sun.tools.xjc.ModelLoader.loadXMLSchema(ModelLoader.java:374)
at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:167)
at com.sun.tools.xjc.ModelLoader.load(ModelLoader.java:113)
at org.jvnet.jaxb2.maven2.XJC2Mojo.runXJC(XJC2Mojo.java:1119)
at org.jvnet.jaxb2.maven2.XJC2Mojo.execute(XJC2Mojo.java:720)
...
mvn -v:
# mvn -v
Apache Maven 2.2.1 (r801777; 2009-08-06 14:16:01-0500)
Java version: 1.6.0_21
Java home: /usr/java/jdk1.6.0_21/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux" version: "2.6.33.3-85.fc13.x86_64" arch: "amd64" Family: "unix"
Ciao, puoi spiegare come posso fare questo? Ho lo stesso problema con Debian + Jboss e non posso ripararlo su Linux, ma funziona bene su Windows/Mac. Grazie. –
Esegui {mvn dependency: tree> dependencies.txt} quindi aggiungi exclude alle dipendenze per i jar che devono essere esclusi. – raisercostin