ClassCastException при разборе XML с помощью WebLogic - PullRequest
14 голосов
/ 07 февраля 2011

Я получаю следующее сообщение об ошибке:

java.lang.ClassCastException: weblogic.xml.jaxp.RegistryDocumentBuilderFactory не может быть приведен к javax.xml.parsers.DocumentBuilderFactory

Я прошел несколько форумов, исследующих это. Они сказали удалить xml-apis.jar или что файлы JAR конфликтовали. Но даже если я выполнил все предложенные шаги, я получаю ту же ошибку.

Ответы [ 7 ]

13 голосов
/ 08 февраля 2011

Это всегда xml-apis.jar.Удалите их из вашего classpath (например, удалите их из WEB-INF / lib вашего веб-приложения).

4 голосов
/ 25 июня 2014

Удалите xml-beans-1.xb2 в каталог lib.Изменен POM, чтобы он не включал этот файл JAR со следующим:

<dependency>
    <groupId>xml-apis</groupId>
    <artifactId>xml-apis</artifactId>
    <version>1.0.b2</version>
    <scope>provided</scope>
</dependency>
4 голосов
/ 08 февраля 2011

Я думаю, что Бананг прав.Форум http://forum.springsource.org/showthread.php?t=22597 описывает решение аналогичной проблемы.

Обычно такие проблемы возникают, когда в пути к классам есть несколько версий одного и того же класса, когда эти версии загружаются разными загрузчиками классов.Одна версия DocumentBuilderFactory была загружена загрузчиком классов системы, другая загрузчиком классов вашего корпоративного приложения.Когда вы вызываете синтаксический анализатор XML, используется родительская версия класса.Когда вы кастуете, ваша личная версия используется.Эти версии несовместимы, что вызывает ClassCastException.

3 голосов
/ 08 февраля 2014

Причина этой проблемы в том, что у вас в библиотеке несколько jar с одним и тем же именем класса.Перейдите в WEB-INF / lib и удалите xml-apis-1.0.b2.jar и stax-api-1.0.1.jar или удалите их из самого pom.xml, и вам будет хорошо.

2 голосов
/ 25 мая 2011

Я хотел бы сделать небольшое дополнение к предыдущим ответам на этот вопрос, на случай, если кто-нибудь еще окажется в той же ситуации, что и я. У меня была такая же проблема на нашем сервере WebLogic 9.2 из-за моего использования CXF 2.2.3. В дополнение к удалению xml-apis.jar, упомянутому ранее, мне также пришлось удалить библиотеку xmlParserAPIs.

Поскольку я использую Maven2, было просто добавить еще одно включение.

    <!-- CXF -->
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-bundle</artifactId>
        <version>${dependency.version.cxf}</version>
        <scope>compile</scope>
        <exclusions>
            <exclusion>
                <artifactId>xml-apis</artifactId>
                <groupId>xml-apis</groupId>
            </exclusion>
            <exclusion>
                <artifactId>xercesImpl</artifactId>
                <groupId>xerces</groupId>
            </exclusion>
            <exclusion>
                <artifactId>xmlbeans</artifactId>
                <groupId>org.apache.xmlbeans</groupId>
            </exclusion>
            <exclusion>
                <artifactId>xmlParserAPIs</artifactId>
                <groupId>xerces</groupId>
            </exclusion>
        </exclusions>
    </dependency>

Надеюсь, это кому-нибудь поможет!

1 голос
/ 28 мая 2013

У нас тоже есть такая проблема. Причина ошибки была в библиотеке gwt. Receipe: исключить все клиентские библиотеки gwt из distr.

0 голосов
/ 25 мая 2016

Что касается моего случая, мне удалось решить эту проблему, удалив библиотеку xml-apis, а также обновив библиотеку обработки XML:

Из org.apache.xmlbeans/xmlbeans/2.4.0

В org.apache.xmlbeans/xmlbeans/2.6.0

К вашему сведению, я использую Weblogic 10.3.6.0.

...