Исключение Maven org.apache.xerces.impl.dv.DVFactoryException

#maven-2

#maven-2

Вопрос:

У меня есть проект Maven с двумя подмодулями, каждый модуль имеет зависимость от xerces2.8.1 (для wsdl2java с cxf). Если я создаю подмодули отдельно, он создается успешно.

Если я создаю из корневого модуля, при сборке второго подмодуля происходит сбой с приведенным ниже исключением

 [INFO] org.apache.xerces.impl.dv.DVFactoryException: DTD factory class org.apach
e.xerces.impl.dv.dtd.DTDDVFactoryImpl does not extend from DTDDVFactory.
  

Кто-нибудь сталкивался с этим раньше?

Спасибо, Виджай

Комментарии:

1. 1 за включение точного сообщения об ошибке

Ответ №1:

Вам необходимо добавить следующее в конфигурацию плагина:

 <plugin>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-codegen-plugin</artifactId>
    <version>${cxf.version}</version>
    <dependencies>
        <dependency>
            <groupId>xerces</groupId>
            <artifactId>xercesImpl</artifactId>
            <version>2.8.1</version>
        </dependency>
    </dependencies>
    ...
</plugin>
  

После этого это должно сработать.

Комментарии:

1. не могли бы вы, пожалуйста, объяснить ответ? зачем плагину codegen нужна внутренняя зависимость?

2. Поскольку загружалась другая неподдерживаемая версия реализации xerces, а не та, которую ожидал плагин codegen.

3. Для CXF 3.2.1 я использовал xerces 2.11.0, и это решило мою проблему. Правильную версию можно найти в cxf-родительском pom-файле.