Je rencontre un problème étrange lorsque j'essaie d'exécuter une build maven qui utilise le plugin jaxb2 pour faire du codegen JAXB (voir stacktrace ci-dessous). Le mieux que je peux comprendre est qu'il y a une implémentation de DTMManager qui est en cours de chargement à partir d'un JAR différent de celui de xalan-2.7.1; cependant, j'ai vérifié que le chemin de classe qui est utilisé pour exécuter l'objectif jaxb: generate a seulement le xalan-2.7.1.jar qui contient un DTMManager ou un DTMManagerDefault - donc je n'ai aucune idée de ce qui pourrait être gênant . Un point de données final: notre build spécifie un profil 'snapshot', qui sert uniquement à JARER les sources (en utilisant maven-source-plugin) et à les publier comme des artefacts. Le scénario de défaillance que j'ai décrit ci-dessus seulement se produit lorsque ce profil est spécifié en plus de la valeur par défaut. J'utilise Maven 2.2.1 sur le JDK 1.6.0_21 64 bits de Sun sous Linux x64 (Fedora 13) - voir ci-dessous la piletrace pour l'information 'mvn -v'.ClassCastException dans le moulage DTMManagerDefault dans DTMManager pendant maven jaxb codegen
Des idées sur ce que le problème peut être et/ou comment s'y prendre pour le déboguer? Cela a été me cause la douleur pour les derniers jours et il bloque maintenant les progrès :(
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"
Bonjour, pouvez-vous expliquer comment je peux faire cela? J'ai le même problème avec Debian + Jboss et je ne peux pas le réparer sous Linux, mais ça marche bien sur Windows/Mac. Merci. –
Exécutez {mvn dependency: tree> dependencies.txt} puis ajoutez exclure à vos dépendances pour les jars qui doivent être exclus. – raisercostin