ClassCastException en la fundición de DTMManagerDefault en DTMManager durante experto jaxb codegen

StackOverflow https://stackoverflow.com/questions/3832414

Pregunta

Estoy teniendo un problema extraño al intentar ejecutar una acumulación experto que utiliza el plugin jaxb2 hacer JAXB codegen (ver StackTrace abajo). Lo mejor que se me ocurre es que hay alguna implementación de DTMManager que está siendo cargado clase de un frasco diferente a la que en xalan-2.7.1; Sin embargo, he verificado que la ruta de clase que se utiliza para ejecutar el jaxb: generar objetivo sólo tiene el uno xalan-2.7.1.jar que contiene una DTMManager o una DTMManagerDefault - así que no tengo idea de qué otra cosa podría estar recibiendo en el camino .

Un último punto de datos: nuestra estructura especifica una 'instantánea' de perfil, que en realidad sólo sirve para JAR también las fuentes (usando maven-plugin de código) y publicarlos como artefactos. El escenario de fallo he descrito anteriormente solamente se produce cuando este perfil se especifica, además de la forma predeterminada.

Estoy usando Maven 2.2.1 se ejecuta en 64 bits de Sun JDK 1.6.0_21 en Linux x64 (Fedora 13) -. A continuación presentamos la StackTrace para el 'mvn -v' info

¿Alguna idea sobre lo que el problema puede ser y / o cómo hacer para depurarlo? Esta ha sido la causa de mi dolor por los últimos días y ahora está bloqueando el progreso: (

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"
¿Fue útil?

Solución

La solución es buscar todas las dependencias en Xalan y xercesImpl en la ruta de clase. Estas dependencias deben ser excluidos.

Actualización

He encontrado una respuesta como esta - ver http: // www.mail-archive.com/dev@qpid.apache.org/msg07295.html

Had a look at this closely and figured it was due to a classpath class
due to Sun bundling an older version of Xalan jar.
I have disabled this test until we come up with a decent solution.

Rajith

Otros consejos

Para excluir las dependencias xalan y xercesImpl en Maven:

    <dependency> <!-- ClassNotFoundException: org.jaxen.dom.DOMXPath -->
        <groupId>jaxen</groupId>
        <artifactId>jaxen</artifactId>
        <version>1.1.3</version>
        <exclusions>
            <exclusion>
                <artifactId>maven-findbugs-plugin</artifactId>
                <groupId>maven-plugins</groupId>
            </exclusion>
            <exclusion>
                <artifactId>maven-cobertura-plugin</artifactId>
                <groupId>maven-plugins</groupId>
            </exclusion>
            <!-- ClassCastException: org.apache.xml.dtm.ref.DTMManagerDefault -> org.apache.xml.dtm.DTMManager -->
            <exclusion>
                <artifactId>xercesImpl</artifactId>
                <groupId>xerces</groupId>
            </exclusion>
            <exclusion>
                <artifactId>xalan</artifactId>
                <groupId>xalan</groupId>
            </exclusion>
        </exclusions>
    </dependency>

https://community.jboss.org/wiki/FreeMarkerAndJBossAS7 .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top