Ich habe ein seltsames Problem, wenn Sie versuchen, eine Maven-Build, der das JAXB2-Plugin JAXB codegen tun ausführen (siehe StackTrace unten). Das Beste, was ich feststellen kann, ist, dass es eine Implementierung von DTMManager gibt, die von einer anderen JAR als der in xalan-2.7.1 geladen wird. Ich habe jedoch verifiziert, dass der Klassenpfad, der zum Ausführen des Ziels jaxb: generate verwendet wird, nur die eine xalan-2.7.1.jar enthält, die einen DTMManager oder einen DTMManagerDefault enthält - so habe ich keine Ahnung, was sonst noch im Weg stehen könnte .ClassCastException in DTMManagerDefault während Maven Jaxb Codegen
Ein letzter Datenpunkt: unser Build spezifiziert ein 'Snapshot'-Profil, das nur dazu dient, auch die Quellen zu jar (mit maven-source-plugin) und diese als Artefakte zu veröffentlichen. Das oben beschriebene Fehlerszenario nur tritt auf, wenn dieses Profil zusätzlich zum Standardwert angegeben wird.
Ich benutze Maven 2.2.1 läuft auf Suns 64-Bit-JDK 1.6.0_21 auf Linux x64 (Fedora 13) - siehe unten den Stacktrace für die 'MVN-V' Info.
Irgendwelche Ideen, was das Problem sein könnte und/oder wie man es debugging gehen? Dies wurde so daß ich in den letzten paar Tagen Trauer und jetzt ist es Fortschritte blockiert :(
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"
Hallo, können Sie erklären, wie kann ich das tun? Ich habe das gleiche Problem mit Debian + Jboss und kann es nicht unter Linux reparieren, aber es funktioniert gut unter Windows/Mac. Vielen Dank. –
Führen Sie {mvn dependency: tree> dependencies.txt} aus, und fügen Sie dann exclude zu Ihren Abhängigkeiten für die jars hinzu, die ausgeschlossen werden sollen. – raisercostin