classcastException في صب DtmmanagerDefault في dtmmanager خلال Maven Jaxb Codegen

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

سؤال

أواجه مشكلة غريبة عند محاولة تشغيل إنشاء Maven يستخدم المكون الإضافي JaxB2 للقيام بـ Jaxb Codegen (انظر StackTrace أدناه). أفضل ما يمكنني تحديده هو أن هناك بعض تنفيذ DTMManager الذي يتم تحميله من جرة مختلفة عن الجرة في Xalan-2.7.1 ؛ ومع ذلك ، فقد تحققت من أن classpath المستخدم في تشغيل JaxB: توليد الهدف فقط لديه xalan -2.7.1.jar الذي يحتوي على dtmmanager أو dtmmanagerDefault - لذلك ليس لدي أدنى فكرة عما يمكن أن يكون في الطريق .

نقطة بيانات نهائية واحدة: يحدد بناءنا ملف تعريف "لقطة" ، والذي يعمل أيضًا على زيادة المصادر (باستخدام Maven-Source-Plugin) ونشرها على أنها قطع أثرية. سيناريو الفشل الذي وصفته أعلاه فقط يحدث عندما يتم تحديد هذا الملف الشخصي بالإضافة إلى الافتراضي.

أنا أستخدم Maven 2.2.1 تشغيل على Sun 64 بت JDK 1.6.0_21 على Linux X64 (Fedora 13) -انظر أدناه StackTrace لمعلومات "MVN -V".

أي أفكار حول ما قد تكون عليه المشكلة و/أو كيفية إجراء تصحيحها؟ لقد تسبب هذا في حزن في الأيام القليلة الماضية وهو الآن يحجب التقدم :(

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"
هل كانت مفيدة؟

المحلول

الحل هو البحث عن جميع التبعيات على Xalan و XerCesimpl في ClassPath. يجب استبعاد هذه التبعيات.

محدث

لقد وجدت إجابة مثل هذا - انظر 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

نصائح أخرى

لاستبعاد xalan و xercesImpl التبعيات في 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 .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top